专利摘要:
多目的通信サービスをサポートするネットワーク内のデータコンテナのコンテンツフィルタリングのシステムおよび方法が開示される。コンテンツフィルタリングシステムは、コンテンツ適合システムに統合される。複数のサーバユニットは、異なるプロトコルによりソースで形成されたデータコンテナを扱う。コンテンツフィルタリング処理は、コンテンツ記述子のセットを生成するためにコンテナのそれぞれのコンポーネントを特徴付けることと、それぞれの記述子のプリセットされた基準により、それぞれのコンポーネントに対する2進条件セットを生成することとに依存する。ルールのセットは、各ルールがそれぞれのブール演算式を個々のコンテンツ編集動作を処方する条件の部分セットに適用するように工夫される。ルールのブール演算式を指定および評価する方法が開示される。ルール間依存を定義するために形式グラフが使用される。
公开号:JP2011505611A
申请号:JP2010532392
申请日:2008-11-07
公开日:2011-02-24
发明作者:ノートン、リチャード、エリオット;ヘロウックス、ロバート;ポアリエ−ビューチェミン、ルイス−レネ;ラバリエール、ジョセフ、レオ、クロード、マリオ
申请人:ヴァントリックス コーポレーション;
IPC主号:G06F17-30
专利说明:

[0001] 本願発明は、"A Method and System for Rule-Based Content Filtering"と名称が付され、2007年11月9日に出願された米国仮出願整理番号第60/986,835号のNORTON他への利益、"System and Method for Rule Based Content Filtering"と名称が付され、2008年11月6日に出願された米国特許出願整理番号第12/266,353号のNORTON他への利益、および"An Engine for Rule Based Content Filtering"と名称が付され、2008年11月6日に出願された米国特許出願整理番号第12/266,362号のNORTONへの利益を主張し、全出願は引用によって本願に組み込まれる。]
[0002] 本願発明は、マルチメディアメッセージングサービス、特にコンテンツフィルタリングのための方法およびシステムに関する。]
背景技術

[0003] 多目的遠隔通信サービスによって、通信デバイスが異なるタイプの複数のコンポーネントを有するデータコンテナを交換することが可能になる。例えば、コンポーネントは、テキスト、画像、オーディオ信号、またはビデオ信号を表すデータを含んでもよい。そのようなサービスを扱う洗練された端末デバイスは急速に進化し、比較的短期間で分化した端末デバイスの複数の「世代」をもたらしている。]
[0004] 複数の世代の端末デバイスの共存に伴い、非互換性の問題が生ずる。データコンテナを送信する端末デバイスは、一般的に受信端末デバイス(またはマルチキャスト通信の場合の受信端末デバイス)の特徴および性能に無関心である。このことにより、引用によりその内容が本願明細書に組み込まれる、2008年9月25日に出願された、米国同時継続出願整理番号第12/238,390号に説明されるように、データコンテナ全体からデータコンテナのコンテンツの正しい検出またはその中の特定のコンポーネントの正しい検出を確実にするとともに、元のコンテナにされた全ての変更を受信端末デバイスに通知するための機能が提供されることが必要となる。]
[0005] 互換性の問題に加えて、個々がそれぞれの添付物を選択的に有する複数のコンポーネントを通信させることは、さらにウィルスのような悪意を持った挿入にさらされることを増加する。コンテナを侵入にさらすことは、コンテンツフィルタリング機能が提供されることを必要なものとする。]
[0006] 多目的サービスを提供するネットワーク内では、コンテンツ適合に加えて、コンテンツフィルタリング機能を提供することに需要がある。]
[0007] マルチメディアサービスを提供するネットワーク内での、コンテンツフィルタリング機能を提供することが、本願発明の目的である。包括的、効果的、かつ経済的なシステムを実現するために、既存のコンテンツ適合機能にコンテンツフィルタリング機能を組み込むことが、他の目的である。]
[0008] 本願発明の一構成によると、クライアントからコンテナを受信するとともに、各コンテナを、コンテナを特定かつパースする複数の制御部からのそれぞれの制御部に移動させるためのネットワークインターフェースと、コンテンツを特徴付ける第1オペランドおよび第1オペランドのターゲット値を指定する第2オペランドに適用可能なそれぞれの演算子によってそれぞれ決定される、ブール変数の配列、ならびにブール変数のそれぞれの部分セットのそれぞれのブール演算式の値によってアクティブ化されるそれぞれのコンテンツ編集動作をそれぞれ指定する、符号化済みルールの配列を格納するメモリデバイスと、コンテナの部分セットに符号化済みルールの少なくとも1つをそれぞれのトランスコーダが適用する、トランスコーダをホスティングする複数のプロセッサとを備える、コンテナのコンテンツを編集するためのエンジンが提供される。]
[0009] エンジンは、演算、管理、および維持機能を実行するための、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を有する動作管理部と、動作管理部に接続され、符号化済みルールの配列を入力するための、かつ各制御部にそれぞれのトランスコーダの部分セットを割り当てるための、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を有するグラフィカルユーザインターフェースと、および各制御部に割り当てられるトランスコーダの識別子を格納する構成メモリデバイスとをさらに備える。]
[0010] エンジンは、ネットワークインターフェースに接続され、コンテナを形成したプロトコルにそれぞれが対応するコンテナタイプにコンテナを並べ替えし、かつ複数の制御部からの特定の制御部に、特定のタイプのコンテナを移動させるための、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を備える並べ替えモジュールをさらに備える。]
[0011] エンジンは、動作管理部に接続され、コンピュータ可読媒体に格納されたコンピュータ可読命令を有し、時間変化するコンテナの流速による動的な制御部へのトランスコーダの割り当て手段を有する、制御部負荷均衡化モジュールをさらに備える。]
[0012] エンジンは、各制御部に接続され、各制御部に割り当てられたトランスコーダ間でコンテナ編集要求を均等に割り当てるためのトランスコーダ負荷均衡化モジュールをさらに備える。]
[0013] エンジンは、制御部とトランスコーダの各部分セットをホスティングするブレードサーバであって、各コアがトランスコーダの部分セットのトランスコーダに独占的に割り当てられる、複数のコアを有するプロセッサと、複数のメモリデバイスと、入力インターフェースと、出力インターフェースとを有するブレードサーバをさらに備える。]
[0014] エンジンは、外部ソースから新しいプログラムを受信するための複数のトランスコーダのそれぞれのトランスコーダに接続されたトランスコーダサービスモジュールと、各トランスコーダにアクセス可能な複数のプログラムを格納するプログラム格納媒体と、個々の新しいプログラムの機能を特定するとともに、それぞれの機能によりプログラムをオーガナイズする、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を有するプログラムレジストリとをさらに備える。]
[0015] 上述のエンジンにおいて、トランスコーダサービスモジュールは、実行されたときに、プロセッサのコアに、複数の制御部からの特定の制御部から特定のコンテナおよび編集要求を受信させ、編集要求に関連するプログラムを選択および実行させ、かつ結果を特定の制御部に戻させる、コンピュータ可読格納媒体に格納されたコンピュータ可読命令をさらに備える。]
[0016] プログラムレジストリは、実行されたときに、プロセッサのコアに、それぞれの機能によりプログラムをオーガナイズさせ、既存のプログラムをそれぞれの新しいプログラムで置換させる、コンピュータ可読命令を備える。上述のエンジンにおいて、プログラム格納媒体は、コンピュータ可読格納媒体に格納された常駐プログラムと、コンピュータ可読格納媒体に格納され、動的にロードされた外部プログラムとを備える。]
[0017] 本願発明の一構成によると、コンポーネントを選択する段階と、コンポーネントのコンテンツを特徴付ける複数の2進条件を決定する段階と、それぞれがブール演算子および2進条件のセットから選択された少なくとも2つのオペランドを有するブール演算式のセットを形成する段階と、ブール演算式のセットのそれぞれのブール演算式を実行して、ブール演算式に1対1対応するコンテンツ指示子のセットを決定する段階と、それぞれの指示子に対応するコンテンツに関連する編集機能を実行する段階とを備える、複数のコンポーネントを有するデータコンテナをフィルタリングする方法が提供される。]
[0018] 方法は、単一の2進条件に基づいて、さらなる編集機能を実行する段階をさらに備える。]
[0019] 方法は、ブール演算式を実行することから生じる指示子が、少なくとも1つの後続ブール演算式の実行を条件的に防ぐ順序に、ブール演算式を配置することをさらに備える。]
[0020] 上述の方法は、コンテンツの指定された記述子と、記述子に対応するプリセットされた基準とにより、ブール演算式を決定する段階をさらに含む。上述の方法において、編集機能を実行する段階は、コンテンツをスキャンして悪意のある挿入を検出するとともに悪意のある検出を除去する段階と、コンテンツをスキャンして、悪意のある挿入を検出するとともに、悪意のある挿入の検出に応じてコンテンツを削除する段階との1つを有する。]
[0021] 本願発明のさらなる他の構成によると、コンテンツの記述子のセットを形成する段階と、記述子に対応する基準のセットを指定する段階と、演算子のセットを指定する段階と、それぞれのブール変数が、演算子のセットの中からの演算子を、記述子のセットの中から選択された記述子である第1オペランドおよび基準のセットの中から選択された基準である第2オペランドに適用する結果である、ブール変数のセットを定義する段階と、ブール変数のセットの中から選択される、ブール変数の部分セットのブール演算式を、それぞれのルールが実行するルールのセットを定義する段階と、実行の結果により、コンテンツに関連する動作のセットの中から選択さあれた動作を実行する段階とを備える、コンピュータデバイスを使用したデータコンテナのコンテンツを編集する方法が提供される。]
[0022] 上述の方法において、記述子のセットは、コンテンツのサイズ、予め定められたコンテンツファミリーのセットからのコンテンツファミリーと、符号化方法と、優先度指定との少なくとも1つを備える。]
[0023] 上述の方法において、演算子のセットは、単項演算子、2進演算子、算術演算子、比較演算子、論理演算子、集合演算子、およびユーザ定義演算子の1つ以上を備える。]
[0024] 方法は、記述子のセット、基準のセット、演算子のセット、およびブール演算式のセットを、コンピュータデバイスのメモリに格納されたコンピュータ可読命令を有するグラフィカルユーザインターフェースを介して入力する段階をさらに備える。]
[0025] 方法は、データコンテナの一部を含むようにコンテンツを選択する段階をさらに備えるのが好都合である。]
[0026] 本願発明の他の構成に従い、ネットワークからのマルチメディアデータコンテナを受信するネットワークインターフェース、ならびに、それぞれのフィルタがコンテンツ記述子、記述子の基準、および演算子の定義を指定するフィルタのセットの定義をユーザから取得する、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を有するフィルタ定義モジュールと、それぞれのルールがフィルタの部分セットおよびフィルタリング動作のブール演算式を指定する、コンテンツフィルタリングルールのセットをユーザから取得する、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を有するルール構築モジュールと、マルチメディアデータコンテナの各コンポーネントのコンテンツを特徴付け、コンテンツ記述子を決定し、演算子を適用し、かつ各フィルタの状態を定義するモジュールと、各ルールの2進出力を決定するモジュールと、2進出力のプリセットされた値を条件としてコンテンツに関連するフィルタリング動作を実行するモジュールとがインストールされ、それぞれのサーバユニットがプロセッサのセットおよびメモリデバイスのセットを有する複数のサーバユニットを備える、マルチメディアデータコンテナのコンテンツをフィルタリングするシステムが提供される。]
[0027] システムは、それぞれがコンピュータ可読格納媒体に格納されたコンピュータ可読命令を備える、(1)既知のプロトコルのセットから選択された任意のプロトコルにより形成されたマルチメディアデータコンテナを受け入れるようにサーバユニットを構成するモジュールと、(2)等しく構成されたサーバユニットの間でマルチメディアデータコンテナを均等に分配するモジュールと、(3)代数文法によりユーザがブール演算式を提供することを可能にするモジュールと、(4)ユーザがツリー構造の形式でブール演算式を提供することを可能にするモジュールと、(5)ツリーの各ノードが演算子およびそれぞれのオペラントのセットを表すツリーを編集および選定することによってユーザがブール演算式を入力することを可能にするモジュールと、(6)ブール演算式の正当性を検証するモジュールと、(7)ルールによって実行される特定のフィルタリング動作は、少なくとも1つの後続ルールの実行を防ぐような順にルールを配置するモジュールと、(8)ブール演算式の値を条件とする少なくとも1つのルールからなる連続するルールを指定するようにユーザに指示するモジュールと、(9)形式グラフの形式で、コンテンツフィルタリングルールのセットを提示するモジュールと、(10)各ルールのブール演算式を最適化するモジュールと、の少なくとも1つを備える。]
[0028] システムは、多くともプリセットされた数のフィルタを有するフィルタ部分セットをそれぞれ指定する特定のルールを選択する段階と、それぞれの特定のルールに対して、フィルタ部分セットの全ての値に対してフィルタ部分セットのブール演算式を評価し、μ>1をフィルタ部分セットのフィルタ数として2μビットからなる配列を生成する段階と、メモリデバイスにビット配列を格納する段階とを実行する、コンピュータ可読格納媒体に格納された、コンピュータ可読命令を備えるモジュールをさらに備える。]
[0029] 他の構成に従うと、本願発明は、データコンテナのコンテンツをフィルタリングする方法を提供する。方法は、2進条件のセットを指定する段階と、演算子のセットを指定する段階と、リーフベクトルを形成する段階と、ノードベクトルを形成する段階とを備える。]
[0030] 2進条件のセットは、コンテンツを特徴付ける。演算子の1つはヌルサクセサを指定されるが、他の各演算子は、演算子セット内からのサクセサを指定される。リーフベクトルはN>1個のリーフレコードを備える。各リーフレコードは、演算子のセットおよび2進条件のそれぞれの部分セットからのリーフの演算子を有する。ノードベクトルは、それぞれがノード演算子フィールドおよびノード状態フィールドを有するN個のノードレコードを備える。]
[0031] 各リーフの演算子は、個々の2進条件に適用され、結果はノードレコードのノード状態フィールドに配置される。各リーフの演算子のサクセサは、次いで、ノードレコードのノード演算子フィールドに配置される。]
[0032] 各リーフレコードを処理した後、ノードベクトルが処理される。共通の演算子を有するノードレコードが特定されるとともに、結合レコードによって置換される。共通の演算子は、特定されたノードレコードのノード状態フィールドのエントリに適用されるとともに、結果の状態は、結合レコードのノード状態フィールドに配置される。共通の演算子のサクセサは、結合レコードのノード演算子フィールドに配置される。]
[0033] コンテンツインデックスは、共通の演算子のサクセサがヌルサクセサであるという条件に従い、共通の演算子を適用した結果の状態として決定される。それに代えて、方法は、共通の演算子のノードレコードを結合した後にノードベクトルのノードレコードの数を記録し続けてもよく、かつコンテンツインデックスは、1に等しいノードレコードの数に対応する結果の状態として決定される。方法は、コンテンツインデックスの値により指定された編集動作を実行する段階をさらに備える。]
[0034] 他の構成に従い、本願発明は、決定ベクトルを予め決定することに基づく、データコンテナのコンテンツをフィルタリングする方法を構成する。方法は、それぞれの2進条件が選択されたコンテンツの記述子およびそれぞれの記述子の基準との関数である、2進条件のセットを定義する段階と、ブール演算式および対応するコンテンツフィルタリング動作を定義する段階と、μ>1としてμビットからなるストリングとして表現される、指定されたμ個の2進条件のブール演算式を選択する段階と、ストリングの2μ個の値のそれぞれに対してブール演算式を評価して、それぞれのエントリがストリングの2μ個の値の1つに対応するコンテンツメトリックの状態である、2μ個のエントリからなる決定ベクトルを生成する段階とを備える。]
[0035] データコンテナの受信に応じて、データコンテナのコンテンツにより、指定されたμ個の2進条件の値が決定される。μビットからなる結果のストリングの値は、次いで、コンテンツフィルタリング動作が適用される必要があるかどうかを決定するブール演算式の値を取得するために、決定ベクトルのインデックスを指示する(index the decision vector)するのに使用される。]
[0036] ブール演算式は、ブール演算子、オペランド、およびデリミタを有する代数フォーマットで取得されてもよい。ブール演算式は、2つのデリミタの間にブール演算子および2つのオペランドを囲む単純パターンを特定するために、次いで、ブール演算式を検査することによって評価される。単純パターンが発見されると、ブール演算子は、パターンの2進値を決定するために2つのオペランドに適用されるとともに、2つのデリミタを伴う単純パターンは、2進値で置換される。ブール演算式を検査して単純パターンを検出する処理は、編集動作を適用するか否かを決定する単一の2進値(「真」または「偽」)にブール演算式が縮小されるまで反復される。]
[0037] それに代えて、ブール演算式は、複数のノードを有するツリー構造の形式で取得されてもよい。ブール演算式は、次いでノードを連続的に評価することによって評価される。複数のレコードを有するツリーテンプレートが作成される。各レコードはそれぞれのノードに対応するとともに、第1オペランド、第2オペランド、現在の演算子、およびサクセサレコードのための4個のフィールドを有する。最初のレコードから開始して、最後のレコードまで順に進みながら、現在のレコードの演算子を、ストリングの現在の値から決定されるそれぞれの2進値に適用して新しい2進値を生成する。現在のレコードが最後のレコードである場合、新しい2進値はブール演算式の値である。もし現在のレコードが中間レコードであるならば、新しい2進値はサクセサレコードのオペランドフィールドに配置される。]
[0038] 本願発明の実施形態は、添付図面を参照して、実施例を使用して本願明細書で説明される。]
図面の簡単な説明

[0039] 図1は、本願発明の実施形態に従う、ネットワークを介して通信されるデータコンテナをフィルタリングおよび適合するサービス制御部および編集エンジンをサポートするネットワークを説明する。
図2は、本願発明の実施形態に従う、制御部およびトランスコーダを備える編集エンジンを説明する。
図3は、本願発明の実施形態に従う、マルチメディアコンテナ、コンテナコンポーネントのコンテンツ記述子、およびコンテンツフィルタの例示的構造を説明する。
図4は、本願発明の実施形態に従う、データコンテナに適用可能なルールのセットに関連付けられたブール演算式の代数形式を説明する。
図5は、本願発明の実施形態に従う、コンテンツフィルタリング処理の基本コンポーネントを説明する。
図6は、本願発明の実施形態に従う、コンテナのコンテンツ記述子の導出処理を説明する。
図7は、本願発明の実施形態に従う、コンテンツフィルタリングシステムを説明する。
図8は、本願発明の実施形態に従う、複数のコンポーネントを有するコンテナに適用される、図7のシステムに類似するシステムを説明する。
図9は、本願発明の実施形態に従う、コンテンツフィルタリング処理の詳細である。
図10は、本願発明の実施形態に従う、ルールのブール演算式を評価する方法を説明する。
図11は、本願発明の実施形態に従う、フィルタリングルールを符号化するための第1の例示的ルールツリー構造を説明する。
図12は、図11のルールツリー構造の符号化するための第1データ構造を説明する。
図13は、本願発明の実施形態に従う、フィルタリングルールを符号化するための第2の例示的ルールツリー構造を説明する。
図14は、図13の第2の例示的ルールツリーに適用される図12の第1データ構造を説明する。
図15は、本願発明の実施形態に従う、図12および図14で例示された第1データ構造を適用する処理を説明する。
図16は、本願発明の実施形態に従う、ルールツリーを符号化する第2データ構造を説明する。
図17は、本願発明の実施形態に従う、図16で例示された第2データ構造を適用する処理を説明する。
図18は、本願発明の実施形態に従う、ルールツリーを使用してルールの結果を決定する処理を説明する。
図19は、本願発明の実施形態に従う、図18の処理に関連付けられるリーフベクトルを形成する段階の詳細である。
図20は、本願発明の実施形態に従う、高速実行時ルール実行のためのブール演算式の前処理方法を説明する。
図21は、図20の方法の例示的実施を説明する。
図22は、本願発明の実施形態に従う、フィルタ定義およびルール定義に関するデータエントリの処理を説明する。
図23は、マルチメディアコンテナのコンポーネントの連続フィルタリング処理を説明する。
図24は、本願発明の実施形態に従う、複数のコンテンツフィルタリングルールを適用する処理を説明する。
図25は、本願発明の実施形態に従う、コンテンツフィルタリング動作を決定するルール間の依存関係を図示するグラフを説明する。
図26は、本願発明の実施形態に従う、図2のエンジンの動作管理部のモジュールを説明する。
図27は、本願発明の実施形態に従う、図2のエンジンのトランスコーダのモジュールを説明する。
図28は、本願発明の実施形態に従う、図2のエンジンのトランスコーダのモジュールを説明する。] 図1 図10 図11 図12 図13 図14 図15 図16 図17 図18
実施例

[0040] 用語
マルチメディアサービス(MMS):この用語は、口語的には、テキスト、オーディオ信号、ビデオ信号、画像、プレゼンテーション等のような異なる形式の情報コンテンツが、ネットワークを介して端末間で交換される、マルチメディアコンテンツ通信サービスをいう。1つの端末から他に送信される符号化済み情報は、通常は、異なる情報コンテンツに対応する、時間インターリーブされたセグメントを伴う単一のデータストリーム内に配置される。]
[0041] コンテナ:コンテナは、コンピュータ可読媒体に格納されるとともに、コンピュータネットワーク上で送信されるコンピュータファイルである。コンテナは、様々なタイプのデータを含むように構成される。コンテナは、複数のテキスト、オーディオ、および様々なストリームの連携された再生を可能にする同期情報を伴うビデオストリームをサポートしてもよい。]
[0042] コンテナコンポーネント:コンテナはセクションを備え、それぞれが、テキスト、オーディオデータ、画像データ、またはビデオデータのような特定の形式で符号化されたデータを有する。用語コンテナコンポーネントは、1セクション内のデータのことをいう。コンテナコンポーネントは、簡潔さを旨として「コンポーネント」といわれてもよい。マルチメディアメッセージングシステムにおいては、コンポーネントは、「メディア」としても知られる。]
[0043] コンテナスクリーニング:「コンテナスクリーニング」は、全ての好ましくない挿入、特に有害な挿入がないことを確実にするために全てのコンポーネントを含むコンテナコンテンツを検査する処理のことをいう。]
[0044] コンテナ適合:「コンテナ適合」は、個々の受信機の復号化機能と非互換であることが発見されたコンテナコンポーネントの形式を修正する処理をいう。もしコンテナコンポーネントを受信機に適合するように提示できないのであれば、コンテナコンポーネントは削除されてもよい。コンテナ適合処理は受信機固有であるが、コンテナスクリーニング処理は意図される受信機のタイプに依存しない。]
[0045] コンテナ編集:用語「コンテナ編集」は、コンテナスクリーニングおよびコンテナ適合の結合された処理のことをいう。]
[0046] コンテナコンディショニング:この用語は、「コンテナ編集」と同義で使用されうる。しかしながら、コンテナコンディショニングは、たとえコンテナが修正されていない場合でも、コンテナに適切な通知を追加する。]
[0047] トランスコーダ:トランスコーダは、符号化情報の直接のデジタル−デジタル変換を実行し、1つのフォーマットの情報レコードを、特定の受信機に適した異なるフォーマットで再生可能にするデバイスである。]
[0048] 図1は、以降で送信部120および受信部160として参照される送信デバイス120から受信デバイス160への経路を提供するネットワーク140を説明する。ネットワーク140は、異なるタイプの数多くの他のハードウェア端末デバイスに加えて、サービス制御部103および編集エンジン106をサポートする。送信部120は、受信部160に、符号化済みテキスト、オーディオ信号、静止画像、アニメーション画像(画像の高速表示)、およびビデオ信号のような異なるコンテンツタイプのデータを含み得るコンテナを送信する。次に、コンテナは、コンテナを検査するとともに、必要ならば、コンテナのコンテンツを編集する編集エンジン106にコンテナを移動させるサービス制御部103に移動させてもよい。編集処理は、いかなる好ましくない挿入、特に有害な挿入がないことを確実にするためのデータスクリーニング、特定の要件に合致させるためのコンテンツ修正、および個々の受信部の復号化能力に一致したコンテンツ適合を含む。] 図1
[0049] 図2は、編集エンジン106を説明する。ネットワークインターフェース210は、リンク204を介してクライアントからコンテナを受信する。コンテナは、個々に240(1)、240(2)、…、240(m)として特定されるm>1個の制御部240の1つに移動される。制御部240は、別個のハードウェアエンティティとして実施されてもよく、または以下で説明されるように複数のトランスコーダ280をホスティングするコンピュータデバイスを共有してもよい。制御部240はプロトコル固有であり、それぞれが個々のプロトコルにより形成されるコンテナを扱うようにプログラムされる。特定のプロトコルを扱う制御部は、同じ制御部タイプであるといわれる。制御部は、制御部グループにグループ化され、それぞれの制御部グループは、同一のプロトコルにより形成されたコンテナを扱う。編集エンジン106は、異なるタイプの制御部を有してもよい。しかしながら、編集エンジン106の全体は、同じタイプの制御部を有するように構成されてもよい。編集エンジン106は、また、負荷均衡化モジュール290を有してもよい。] 図2
[0050] 編集エンジン106は、個々に280(1)、280(2)、…280(n)として特定される複数のトランスコーダ280を有する。トランスコーダ280の主要な機能は、1つのフォーマットの情報レコードを、特定の受信機に適した異なるフォーマットで再生可能にするために、符号化済み情報の直接のデジタル−デジタル変換を実行することである。しかしながら、トランスコーダは、コンテンツ適合とともにコンテンツフィルタリング処理を実行してもよい。複数の選択されたトランスコーダ280は、制御アセンブリを共に形成する各制御部240に割り当てられる。例えば、図2において、制御部240(1)およびトランスコーダ280(1)から280(5)は、それぞれのコンピュータデバイスにインストールされた1つの制御アセンブリを形成する。制御部240(m)およびトランスコーダ280(n−2)から280(n)は、他のコンピュータデバイスにインストールされた他の制御アセンブリを形成する。制御アセンブリは、プロセッサおよびメモリデバイスをサポートする単一の回路基板であり、「ブレードサーバ」とも呼ばれる、サーバユニットにインストールされるのが好ましい。] 図2
[0051] プロセッサ220は、ネットワークインターフェース210および動作制御部とも呼ばれる動作管理部230をホスティングする。ネットワークインターフェース210は、ネットワーク140(図1)に通信可能に接続されたクライアントからコンテナを受信する。動作管理部230は、動作、管理、および維持機能を実行するための、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を備える。] 図1
[0052] サービス制御部103は、コンテナを受信するとともに、編集エンジン106の1つにコンテナ編集要求を送信してもよい。]
[0053] プロセッサ220は、また、動作管理部230に接続され、符号化済みルールの配列を入力するための、かつ各制御部240にそれぞれのトランスコーダの部分セットを割り当てるための、コンピュータ可読媒体に格納されたコンピュータ可読命令を備えるグラフィカルユーザインターフェース(図示せず)をホスティングする。構成メモリデバイス260は、各制御部に割り当てられたトランスコーダの識別子を格納する。]
[0054] コンテンツフィルタリング処理を支配するルールは、各トランスコーダ280によってアクセスされるルールメモリ225に格納される共通のルールファイルとして格納されてもよい。それに代えて、制御部および関連付けられたトランスコーダをホスティングする各コンピュータデバイス(サーバユニット)は、ルールファイルの関連する部分セットを格納してもよい。]
[0055] 図3は、それぞれ320(1)、320(2)等として特定される複数のコンポーネント320を有するコンテナを説明する。コンポーネント320は、テキスト、オーディオ録音、符号化済み画像、ビデオ録画、および他のいかなるコンテンツタイプであってもよい。コンポーネントのコンテンツは、Dを記述子の総数として、それぞれ、332(1)、332(2)、…、332(j)、および332(D)として特定される記述子332のセット330を使用して特徴付けられる。コンテンツ記述子は、コンテンツタイプ、識別子(名)、拡張子、デジタル署名、暗号化機能、優先度、およびファイルサイズのような複数の属性により定義される。記述子は、マルチメディア遠隔通信の進化する技術に伴い、コンテンツフィルタリング要件が変化するとともに追加または削除されてもよい。] 図3
[0056] 本願発明の実施形態に従うと、コンテナコンポーネントのコンテンツの特徴は、コンテンツが特定の基準に合致するかどうかをそれぞれの2進変数が決定する、2進変数のセットとして表される。受信済みコンテナのコンテンツ記述子の値は、コンテナのコンテンツを検査することによって決定される。したがって、この機能を実行するトランスコーダは、受信済みコンテナのフォーマットおよびコンテナが形成されたプロトコルの意味を認識している。特徴付ける2進変数の値は、コンテンツフィルタリングシステムのインストーラ(ユーザ)によって入力されたコンテンツ記述子(342)の値および対応する基準346の2つのオペランドに演算子344を適用することによって決定される。演算子344および2つのオペランド342および346は、(コンテンツ条件または単に条件とも呼ばれる)フィルタ340を形成するといわれる。このように、コンテナコンポーネントのコンテンツは、それぞれが「真」または「偽」の値を有するフィルタのセットによって特徴付けられる。]
[0057] 受信機に適合するための適合の前にコンテナを編集することは、ルールのセットに基づくものであり、各ルールはコンテンツ全体を削除する、コンテンツに発見された悪意のある挿入を削除する、またはコンテンツの添付物を除去するような編集動作を決定する。ルールは、フィルタのそれぞれの部分セットの関数である。フィルタが2進変数になるように選択すると、ルールを定義する関数は、フィルタの部分セットのブール演算式として形式化されるのが好ましい。こうすると、(図7および図8に関してより詳細に説明される)コンテンツフィルタリングシステムのインストーラ(ユーザ)は、フィルタの部分セットによって、ブール演算式、およびブール演算式を実行した結果により実行される動作とによってルールを定義する。] 図7 図8
[0058] 図4は、データコンテナのコンポーネントに適用可能であり、ルール配列420に格納された、4つのルールからなるセットに関連付けられたブール演算式の代数形式を説明する。同じルールのセットは、また、ルールフィルタの少なくとも1つのコンポーネントに適用されてもよい。] 図4
[0059] 第1ルール、ルール1は、単一のフィルタ(size>30000)によって定義され、コンテンツ記述子は、コンポーネントのサイズであり、演算子は、"GREATERTHAN"であり、かつ基準は30000(参照符号440)である。ルールの結果がブール「真」である場合、それぞれの動作はコンポーネントをドロップするとともに、考察下のコンポーネントに対して残りのルールを処理するのを中止する。]
[0060] 第2ルール、ルール2は、2つのフィルタ(size>5000)および(family≠message)のブール演算式450によって定義される。第1フィルタの記述子は"size"であり、基準は"5000"であり、かつ演算子は"GREATERTHAN"である。第2フィルタの記述子は"family"であり、基準は"message"であり、かつ演算子は"NOTEQUAL"である。ブール演算式は、単一の演算子"OR"を含む。ルール2に関連付けられた動作は、ルール1の動作と同じである。]
[0061] 第3ルール、ルール3は、3個のフィルタ(size>25000)、(content-type=image/wbmp)、および(content-type=image/png)からなるブール演算式460によって定義される。第1フィルタの記述子は"size"であり、基準は"25000"であり、かつ演算子は"GREATERTHAN"である。第2フィルタの記述子は、"content-type"であり、基準は"image/wbmp"であり、かつ演算子は"EQUAL"である。第3フィルタの記述子は、"content-type"であり、基準は"image/png"であり、かつ演算子は"EQUAL"である。ブール演算式は2つの演算子"AND"および"OR"を含む。ルール3の動作は、ルール1の動作と同じである。"wbmp"は無線ビットマップ(無線アプリケーションプロトコル、WAP、グラフィックフォーマット)のことをいい、かつ"png"は"Portable Network Graphics"のことをいうことに留意する。]
[0062] 第4ルール、ルール4は単一のフィルタ(family=message)によって定義され、記述子の内容は"family"であり、基準は"message"であり、かつ演算子は"EQUAL"(参照符号470)である。]
[0063] 図5は、図2の動作管理部230に組み込まれるとともに、ユーザインターフェース520、フィルタ定義を取得するフィルタ作成モジュール530、ルール定義を取得するルール構築モジュール540、フィルタ定義を格納するメモリ区画550、およびルール定義(ルール構造)を格納するメモリ区画560を備える、データ取得サブシステムの基本コンポーネントを説明する。ユーザインターフェース520によって、インストーラ(ユーザ)が入力データ512を提供してフィルタのセットおよびルールのセットを定義することが可能になる。フィルタ作成モジュール530は、実行されると、インストーラにコンテンツ記述子の定義、各定義の基準、および演算子を入力するようにプロセッサが促すことを引き起こす、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を備える。記述子の値は、受信済みコンテナのコンテンツにより決定される。] 図2 図5
[0064] ルール構築モジュール540は、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を備え、実行されると、それぞれのルールに対してブール演算式を入力するとともに、予め定められた動作のセットから動作を選択するようにプロセッサがインストーラに促す。コンピュータ可読命令は、また、プロセッサにブール演算式をパースさせるとともに、実行する表現の項の順序を決定させる。]
[0065] フィルタ定義は、メモリデバイスのメモリ区画550に格納され、かつルール定義は同じメモリデバイスのメモリ区画560または任意の他のメモリデバイスに格納される。]
[0066] 図6は、メモリ区画550に格納されたコンテンツ記述子の定義を使用して受信済みコンテナ612のコンテンツ記述子の値を決定する処理を説明する。受信済みコンテナ612は、コンテナのコンポーネントを特定するために、ステップ620でパースされる。各コンポーネントはステップ640において解析されるとともに、ステップ650において、結果とメモリ区画550から読まれたコンテンツ記述子の定義とがペアにされる。] 図6
[0067] 図7は、本願発明の実施形態に従う、コンテンツフィルタリングシステムの全体構成を説明する。メモリ710は全ての関連するフィルタのデータを格納する。各フィルタは、図5のモジュール530によって決定される演算子のセット740からの演算子、図6のステップ650において決定されるコンテンツ記述子のセット720からのコンテンツ記述子、および図5のモジュール530において決定される記述子の基準のセット730からの記述子の基準によって定義される。各フィルタの2進値(「真」および「偽」)は、図5のモジュール540において定義されるルールのセットの実行において使用するためにメモリデバイス750に格納される。] 図5 図6 図7
[0068] 各ルールは、フィルタの部分セット、ブール演算式、および動作によって定義される。メモリ770は、システムのインストーラ(ユーザ)の入力により、図5のモジュール540で決定された符号化済みブール演算式を格納する。メモリ760は、各ルールで使用されるフィルタの識別子およびそれぞれのブール演算式を格納する。メモリ780は、それぞれのブール演算式の評価の結果に従って実行される編集動作の指示を格納する。各ブール演算式の実行は2進の結果およびそれぞれの編集動作を生成する。編集動作の完了に応じて、編集されたコンテンツはメモリ790に配置される。] 図5
[0069] 図7は、本願発明の実施形態による、単一のコンポーネントに適用されるとした、コンテンツフィルタリングシステムを説明するが、図8は、k>1個のコンテナコンポーネントに適用されるとして、図7のコンテンツフィルタリングシステムを説明する。メモリデバイス810は、k個のコンテナコンポーネントのそれぞれの全ての関連フィルタのデータを格納する。各フィルタに関連するデータは、それぞれ812(1)から812(k)として特定される。コンテナのコンポーネントは連続的に処理される。考察中のコンポーネントに対し、各フィルタの演算子を適用した結果は、メモリ850内に保持される。N>1個の符号化済みブール演算式のセットは、メモリ864に格納される。ブール演算式は、870(1)から870(N)として個々に特定され、各々が、それぞれ880(1)から880(N)として特定されるN個の編集動作からのそれぞれの編集動作に関連付けられる。] 図7 図8
[0070] 図9は、コンテンツフィルタリングの例示的な処理を説明する。図7および図8のコンテンツフィルタリングのためのシステムのインストーラ(ユーザ)は、最初に、それぞれ920(1)から920(5)として特定される5個のコンテンツ記述子、それぞれ922(1)から922(8)として特定される8個の記述子の基準、およびそれぞれ924(1)から924(4)として特定される4個の演算子を定義した。インストーラは、それぞれ930(1)から930(12)として特定され、それぞれのフィルタがコンテンツ記述子920の1つ、基準922の1つ、および演算子924の1つを指定する12個のフィルタを定義した。5個のコンテンツ記述子920(1)から920(5)の値の決定に応じて、図6のステップ650で説明されるように、12個のフィルタの2進値が決定される。] 図6 図7 図8 図9
[0071] インストーラは、それぞれ950(1)から950(6)として特定され、それぞれのブール演算式が12個のフィルタの部分セットに関連付けられている、6つのブール演算式を定義した。例えば、ブール演算式950(2)は2つのフィルタ930(1)および930(6)に関連付けられるとともに、ブール演算式950(5)はフィルタ930(2)、930(8)、および930(11)に関連付けられる。インストーラは、それぞれ960(1)から960(4)として特定される4つの動作を定義した。インストーラは、次いで、図5のルール構築モジュール540を使用して、それぞれ940(1)から940(9)として特定される9個のルールを定義した。各ルールは、単一のブール演算式950および単一の動作960に関連付けられる。例えば、ルール940(1)は、ブール演算式950(2)および動作960(2)を指定し、一方ルール940(9)は、ブール演算式950(5)および動作960(4)を指定する。] 図5
[0072] ルールは単一のフィルタに基づいてもよく、ルールの結果は当該フィルタの2進値である。例えばルール940(7)はフィルタ930(11)のみに依存する。]
[0073] ブール演算式の表現
図7および図8のコンテンツフィルタリングシステムのインストーラは、通常の代数文法によって、またはツリー構造によってブール演算式950を提供してもよい。図5のユーザインターフェース520は、代数形式で表現されたブール演算式を符号化する第1モジュール(図示せず)およびツリー構造として表現されたブール演算式を符号化する第2モジュール(図示せず)を備える。2つのモジュールの各々は、インストーラがブール演算式を正しく指定できるようにするための、それぞれのテンプレートを提供する。] 図5 図7 図8
[0074] ブール演算式は、単純演算、結合演算、および複合演算を備える。単純演算は、演算子およびオペランドが(例えば2つの括弧のような)2つのデリミタによって区切られた演算子および2つのオペランドとして示される。演算子およびオペランドは、任意の順序でリストされてもよく、かつ2つのデリミタは互いに区別される必要はない。2つの演算子は、2つのフィルタを表すブール変数である。結合演算は、演算子および2つの単純演算が2つのデリミタによって区切られた、演算子および2つの単純演算を備える。複合演算は、2つの演算の何れかが、単純演算または結合演算であってもよい、全てが2つのデリミタで区切られた演算子および2つの演算を備える。複合演算を構成する2つの演算は、また複合演算であってもよい。単純演算、結合演算、または複合演算のデリミタは同じであってもよい。]
[0075] 図10は、本願発明の実施形態による、単純演算を認識かつ実行することのみを必要とする、ブール演算式の評価方法を説明する。方法によると、単純演算を特定するために、符号化済みブール演算式がパースされる。特定された単純表現の演算子は、(例えば"1"および"0"として表される)「真」または「偽」の2進値を生成すべく、それぞれのオペランド(フィルタ)に適用される。このように処理された、演算子、オペランド、および特定された単純演算の2つのデリミタは、削除されるとともに、演算の結果に置換される。この処理は、符号化済みブール演算式が単一の単純演算に縮小されるまで再帰的に継続され、その結果はブール演算式の結果となる。] 図10
[0076] 図10のステップ1012において、単純演算を特定するためにブール演算式が検査される。単純演算が発見された(ステップ1014)場合、ステップ1016は単純演算を実行するとともに、2進値を生成する。ステップ1018は、単純演算の演算子、オペランド、およびデリミタを2進値で置換する。ステップ1012は、次いで、縮小されたブール構造内の他の単純演算を探すために再訪される。ステップ1014がブール演算式の現在の形式にさらなる単純演算が発見されないと決定した場合、ステップ1020は、現在の形式を検査して、単一の2進値(「真」、「偽」、または「1」、「0」)に現在の形式が実際に縮小したかどうかを決定する。そうである場合、ステップ1022は単一の2進値をブール演算式の実行結果として報告する。処理されたブール演算式が2以上の2進値を含むとステップ1020が決定した場合、ステップ1024は、ブール演算式は正しく形成されていないという通知を報告する。] 図10
[0077] 図10の処理は、ユーザ(インストーラ)がブール演算式を訂正できるようにデータ入力の間に実行されるのが好ましい。ユーザインターフェース520または編集エンジンの他のいくつかのコンポーネントは、誤って形成されたブール演算式を解析するとともに、エラーを位置特定するコンピュータ命令を備えてもよい。] 図10
[0078] 本願発明の実施形態によるブール演算式を符号化および評価する代替的方法は、ブール演算式のグラフィカルなツリー表現に依存する。それぞれがツリーのリーフであるフィルタ1からフィルタ6として特定される6個のオペランド(6個のフィルタ)のブール演算式を図示する例示的ルールツリー1100が図11に説明されている。Θ1、Θ2、およびΘ3と記される3つの演算子は、3つの演算{フィルタ1、Θ1、フィルタ2}、{フィルタ3、Θ2、フィルタ4}、および{フィルタ4、Θ3、フィルタ6}を定義する。各演算子のすぐ次のサクセサが定義される。例えば、Θ1、Θ2、およびΘ3のサクセサは、それぞれ演算子Θ5、Θ4、およびΘ4であるとともに、演算子Θ4およびΘ5のサクセサは、それぞれΘ5および"NULL"である。"NULL"サクセサを有する演算子は、ブール演算式の結果を生成する。] 図11
[0079] 演算子Θ1は、演算子Θ5のオペランドである、2進出力B1を生成する。演算子Θ2は、演算子Θ4のオペランドである2進出力B2を生成する。演算子Θ3は、演算子Θ4のもう一方のオペランドである2進出力B3を生成する。演算子Θ4は、演算子Θ5のもう一方のオペランドである2進出力B4を生成する。演算子Θ5は、ツリーによって表されるブール演算式の結果である2進出力B*を生成する。]
[0080] 図12は、図11のルールツリー1100を表現するテンプレート配列1230を説明する。テンプレート配列1230のインデックス1220は、図12に指示されるように、0から19まで変化する。テンプレート配列1230は、演算子の総数(図11の例示的ツリーにおいては5個)に等しい数のレコードに分割され、それぞれのレコードは、演算子に対応するとともに、2つのオペランドを有する単純操作を表す。フィルタの2進値は、考察下のコンテナが処理された後に判る。このように、レコードは、個々のフィルタのインデックス、演算子定義、およびすぐ次の演算子に対応する他のレコードへのポインタを有する。"NULL"ポインタは、現在のレコードが処理すべき最後のレコードであることを指示する。ユーザは、任意の順序でレコードを入力してもよく、かつ図5のユーザインターフェース520を伴うモジュール(図示せず)は、レコードが連続的に処理されてもよく、かつ任意のレコードが処理されるときに、それぞれのオペランドの値は既に決定されているようにレコードを再オーガナイズする。] 図11 図12 図5
[0081] 図12に説明されるように、最初の3つのレコードは、ツリーのリーフを形成する6個のフィルタに適用可能である演算子Θ1、Θ2、およびΘ3に対応する。1番目のレコードのポインタπ(1)は、演算子Θ1の2進の結果B(1)を保持する配列のインデックス16を指示する。2番目のレコードのポインタπ(2)は、演算子Θ2の2進の結果B(2)を保持する配列のインデックス12を指示する。3番目のレコードのポインタπ(3)は、演算子Θ3の2進の結果B(3)を保持する配列のインデックス13を指示する。このようにすると、4番目のレコードに到達したときに、2つのオペランドB(2)およびB(3)は既に算出されていることになる。演算子Θ4の2進の結果B(4)は、位置π(4)=17に書かれる。このようにすると、5番目のレコードに到達したときに、それぞれの2つのオペランドB(1)およびB(4)は、既に判っているようになる。演算子Θ4はサクセサを有さない(すなわちヌルサクセサを有する)ので、演算子Θ4の2進出力は、ブール演算式の結果である。] 図12
[0082] テンプレート配列1230の例示的なアクティブ化は、図12にも説明される。図6の処理により決定されたフィルタ1からフィルタ6の値は、それぞれ「真」、「偽」、「真」、「偽」、「真」、および「真」である。ブール演算子Θ1からΘ5は、ユーザによってそれぞれ"AND"、"OR"、"AND"、"AND"、および"XOR"として指定される。演算子Θ4("XOR")がヌルサクセサを有するので、演算子"XOR"は、ブール演算式の結果である2進出力「真」を生成する。] 図12 図6
[0083] 図13は、L1からL11と記された11個のリーフ(フィルタ)のブール演算式に対応する第2の例示的なルールツリー1300を説明するとともに、図14は、図12のテンプレート配列1230に類似し、図13のルールツリーに、インデックス1420を0から43まで変化させながら適用される、テンプレート配列1430を説明する。ルールツリー1300は、Θ2からΘ11と記された10個の演算子を備える。1番目のリーフL1は、サクセサを有さない演算子Θ11のオペランドである。統一性のため、ルールツリー1300を表す、図14のテンプレート配列1430の(図14においてレコード1と記された)1番目のレコードは、概念的には、「ドントケア」オペランドφおよびL1の値をサクセサ演算子Θ11のオペランドとして運ぶ許容非存在演算子Θ1を含むと概念的に捉えられる。当業者に公知であるように、オペランドφに割り当てられた「ドントケア」値は、都合の良いように「真」状態または「偽」状態のいずれであってもよい。残りの10個のレコード、テンプレート配列1430のレコード2からレコード11は、演算子Θ2からΘ11に対応する。図14のテンプレート配列1430のそれぞれのエントリL1、L2、からL11は、フィルタへのインデックス(ポインタ)である。図12を参照しながら上述されたように、図5のユーザインターフェース520に関連付けられたオーガナイズモジュール522は、各レコードが既に決定済みのオペランドを有し、レコードが連続的に処理されうるように、レコードを配置する。] 図12 図13 図14 図5
[0084] 図15は、テンプレート配列1230(図12)または1430(図14)を使用するツリー符号化方法を概要する。ステップ1520において、それぞれがツリー内のノードに対応する複数のレコードを有するテンプレートが生成される。各レコードは、2つのフィルタのインデックス、現在の演算子、および現在の演算子のサクセサに対応するサクセサレコードへのポインタを含む、4つのフィールドを有する。ステップ1530において、図6の処理により決定されたフィルタのリストは、考察下のコンテナに対して準備される。ステップ1540において、ツリーテンプレートのレコードは連続的に処理される。各レコードのオペランドは、フィルタのリストをインデックス化することによって取得される。それぞれの演算子はオペランドに適用されるとともに、2進の結果は、サクセサレコードのオペランドフィールドに配置される。ステップ1550において、最終レコードの演算子の結果は、ツリーによって表現されるブール演算式の結果として提示される。] 図12 図14 図15 図6
[0085] 図16は、本願発明の実施形態によるルールツリー構造を表現する代替的な方法を説明する。ルールに関連するフィルタ(条件)のセットは、上述されたように、コンテンツ記述子、記述子の基準、およびフィルタ演算子に基づき定義される。フィルタのセットの定義は、フィルタ定義配列に格納される。ブール演算子のセットは、ヌルサクセサを指定された1つの演算子と、演算子のセットからのサクセサを指定された、それぞれの他の演算子とによって定義される。フィルタはツリーのリーフを形成するとともに、フィルタの部分セットに分割され、部分セットのフィルタは、ブール演算子のセットの中からのブール演算子のオペランドを形成する。特に、フィルタの部分セットが2つのフィルタを含む場合、ブール演算子の総数は、フィルタの総数引く1に等しい。] 図16
[0086] M(M>1)個のフィルタのセットを考察すると、N個のリーフレコード、1<N<M、を備えるリーフベクトルのテンプレートが形成される。各リーフレコードは、演算子のセットの中からのリーフの演算子およびそれぞれのフィルタの部分セットを有する。インストール段階で、各リーフレコードは、演算子およびフィルタ定義配列内のオペランド(フィルタ)のインデックスを含む。それぞれのコンテナコンポーネントに対して、各リーフレコードのフィルタの値が決定される。]
[0087] リーフレコードの数Nに等しい数のノードレコードを有するノードベクトルが形成される。各ノードレコードは、ノード演算子フィールドおよびノード状態フィールドを有する。インストール段階で、ノードレコードは空であり、データを含んでいない。ブール演算子およびノードレコードのノードの状態は、リーフレコードの処理中に最初に決定される。N個のノードレコードは、いかなる順序で配置されてもよい。しかしながら、最初にノードレコードをリーフレコードに1対1に対応させるのが好都合である。このようにすると、ノードレコードj、1≦j≦Nのブール演算子は、リーフベクトルjのブール演算子のサクセサになる。]
[0088] フィルタの値の決定に応じて、各リーフの演算子がそれぞれのフィルタ(それぞれの2進条件)に適用されるとともに、結果はノードレコードのノード状態フィールドに配置される。各リーフの演算子のサクセサは、ノードレコードのノード演算子フィールドに配置される。]
[0089] 全てのリーフレコードを処理した後、ノードレコードが処理される。本願明細書では接続ノードレコードと呼ばれる、共通の演算子を有するノードレコードが、次いで特定される。新しい状態を生成するために、共通の演算子は、次いで、全ての接続ノードレコードのノードの状態に適用される。接続ノードレコードから選択されたノードレコードの演算子フィールドは、共通の演算子のサクセサによって置換されるとともに、選択されたノードレコードのノード状態フィールドは、丁度決定された新しい状態によって置換される。残りの結合ノードレコードは、ノードベクトルから削除される。こうして、結合ノードレコードを伴う接続ノードレコードのそれぞれのセットの置換をもって、ノードベクトル内のノードレコードの数は、減少される。接続ノードレコードを特定する処理は、ノードベクトルが唯一のノードレコードを含むまで再帰的に継続する。残りの1個のノードレコードの演算子フィールドのブール演算子の適用結果は、ブール演算式の評価結果である。最終ノードレコードのブール演算子は、ヌルサクセサを有する。]
[0090] 図16は、ツリーのリーフを形成する11個のフィルタからなるブール演算式を表す図13の例示的ツリーに対するルールツリーを符号化する再帰ルール構築1600を説明する。リーフ(フィルタ)は、L1からL11と記される。図13のツリーにおいて、リーフL1は他のいかなるリーフにも関連付けられていない。統一性のため、リーフL1は、受動演算子Θ1を共有するリーフφに人為的に関連付けられている。挿入されたリーフφは、「ドントケア(don't care)」値が割り当てられる。当業者に公知であるように、「ドントケア」値は、「真」状態または「偽」状態のいずれにも都合よく割り当てられうる。] 図13 図16
[0091] ブール演算子のセットΘ2からΘ11は、ユーザによって定義される。演算子Θ2からΘ6はリーフレコードに関連付けられている一方、演算子Θ7からΘ11はノードレコードに関連付けられている。演算子Θ11はヌルサクセサを有するとともに、他の各演算子Θ2からΘ10は、図16のリスト1610内で図示されるように、演算子Θ7からΘ11のセットからのサクセサを有する。] 図16
[0092] リーフベクトル1620は、それぞれが1622(1)から1622(6)として特定される6個のレコード1622を備え、割り当てられた演算子Θ1からΘ6は、オペランドフィールド1626(1)から1626(12)に配置された対応するオペランドのインデックスを伴う、演算子フィールド1624(1)から1624(6)に配置される。6個のリーフレコードのオペランドフィールドのオペランドは、{Φ, L1}、{L2, L3}、{L4, L5}、{L6, L7}、{L8, L9}、および{L10, L11}である。]
[0093] フィルタの2進値が決定された場合(図5および図6)、リーフレコード1622が処理される。リーフレコード1622(1)から開始して、作為的受動演算子Θ1は、単に、ノードレコードのノード状態フィールド1642(1)にL1の値を渡す。Θ1のサクセサである演算子Θ11は、ノードレコードの演算子フィールド1642(1)に配置される。2番目のリーフレコード1622(2)は、次いで処理され、ノードレコードのノード状態フィールド1642(2)に配置される2進値B2を生成するために、演算子Θ2はリーフL2およびL3(フィルタL2およびL3)に適用される。演算子Θ9である演算子Θ2のサクセサは、ノードレコード1622(2)の演算子フィールドに配置される。処理は、全てのノードレコード1642(1)から1642(6)が決定されるまで継続する。] 図5 図6
[0094] 処理は、ノードベクトル1640のみを使用して再帰的に継続し、リーフベクトル1620はもはや不要である。ノードレコード1642(1)内の演算子Θ11は、ノードベクトル1640(1)内でペアにされていない。それ故、ノードレコード1642(1)は変更されずにとどまる。ノードレコード1642のいずれも演算子Θ9を含まないので、同様に、ノードレコード1642(2)は、変更されずにとどまる。ノードレコード1642(3)および1642(4)は、オペランドB3およびB4に適用されて、ノードレコード1642(3)のノード状態フィールドに配置される2進の結果B7を生成し、B3を置換する、共通の演算子Θ7を有する。Θ9である演算子Θ7のサクセサ演算子は、レコード1642(3)の演算子フィールドに配置され、Θ7を置換する。新しい結合レコード1642(3)内で、今消費されたノードレコード1642(4)は、削除される。同様に、ノードレコード1642(5)および1642(6)は、演算子Θ8のサクセサ演算子Θ10を有する新しいノードレコード内で結合されるとともに、共通の演算子Θ8をオペランドB5およびB6に適用することによって、ノード状態B8が決定される。ノードベクトル1640は、参照符号1640(2)によって特定される4つのノードレコードに今縮小した。ノードレコード1640(2)は、ノードレコード1640(1)を単に上書きする。]
[0095] 処理は、結合されて新しい結合ノードレコード1642(2)を生成するノードレコード1642(2)および1642(3)とともに再帰的に継続される一方、ノードレコード1642(1)および1642(4)は変更されずにとどまる。2つの不変ノードレコードは、今、縮小されたノードベクトル1640(3)内のレコード1642(1)および1642(3)である。]
[0096] ノードレコード1642(2)および1642(3)は、共通の演算子Θ10を有する。ノードレコード1642(2)のノード状態フィールドに配置される新しい状態B10を生成するために、演算子Θ10はオペランドB9およびB8に適用される。演算子Θ10のサクセサ演算子Θ11は、ノードレコード1642(2)のノード状態フィールドに配置される。ブール演算式の出力B*を生成するために、ノードレコード1642(1)および1642(2)の共通の演算子Θ11はオペランドB1およびB10に適用される。]
[0097] 図17は、図16のリーフベクトルテンプレート1620およびノードベクトルテンプレート1640を使用してルールツリーの出力を決定する処理を説明する。ステップ1720において、考察下のデータコンテンツを特徴付けるブール条件のセット(ブールフィルタL2からL11)が決定される。ステップ1722において、N>1個のリーフレコード1622を有するリーフベクトル1620が形成される。各リーフレコード1622は、ブール演算子フィールド1624およびブール条件の部分セット(フィルタL2からL11の部分セット)のためのフィールドを有する。ステップ1724において、N個のノードレコード1642のノードベクトル1640が形成される。各ノードレコード1642は、ブール演算子フィールド1644およびノード状態フィールド1648を含む。ステップ1726において、各リーフの演算子は、図5および図6を参照して上述されたようにコンテンツデータの特徴から決定される、それぞれのブール条件(ブールフィルタ)の部分セットが適用される。2進の結果は、選択されたノードレコード1642のノード状態フィールドに配置される。ステップ1728において、各リーフの演算子のサクセサが、選択されたノードレコードの演算子フィールドに配置される。ステップ1730において、共通の演算子を有するノードレコードが結合レコードに置換され、こうしてノードベクトル1640のノードレコード1642の数を減少させる。ステップ1732において、置換されたノードレコードのノード状態に共通の演算子が適用されるとともに、2進の結果は、結合レコードの演算子フィールドに配置される。ステップ1734において、図16のリスト1610から決定された共通の演算子のサクセサは、結合ノードレコードの演算子フィールドに配置される。ステップ1736において、残りのノードレコードの数が1より大きい場合、共通の演算子のノードレコードを結合する処理を継続するためにステップ1730が再訪される。残りのレコードの数が1の場合、残りのノードレコードの演算子がノードレコードのノード状態に適用されるとともに、編集動作が実行される必要があるかどうかを結果が決定する(ステップ1740)。] 図16 図17 図5 図6
[0098] 図18は、図17の処理の詳細であるフローチャートである。ステップ1820において、図19に詳細されるように、リーフベクトル1620が形成される。リーフレコード1622(1)から1622(N)は連続的に考察される。ステップ1824において、インデックスjは0に等しく設定される。より多くのリーフレコードが処理されるべきであるとステップ1826が決定した場合、ステップ1828は、インデックスjを1だけ増加するとともに、現在のリーフレコードのリーフインデックスに対応するリーフセット(フィルタのセット)を取得するとともに、ステップ1830は、現在のリーフレコードの演算子θ(演算子Θ1からΘ6の1つ)を取得する。ステップ1832は、取得されたリーフのセットに演算子を適用し、2進出力Bを生じる。ステップ1834において、図16のリスト1610からサクセサS(θ)が決定される。] 図16 図17 図18 図19
[0099] ノードベクトル1640のノード状態フィールドおよび演算子フィールドは、本願明細書で、U(j)、V(j)、1≦j≦Nとして記される、即ちU(j)およびV(j)は、ノードレコード1642(j)、1≦j≦Nを定義する。ステップ1836において、Bの値はノードベクトル1640のノード状態フィールドU(j)に配置されるとともに、S(θ)の値はノードベクトル1640の演算子フィールドV(j)に配置される。全てのリーフレコード1622(1)から1622(N)が処理された場合、インデックスjはリーフレコードの数Nに等しく、かつノードベクトル1640の各ノードレコード1642は、それぞれのノード演算子およびノード状態を有する。ステップ1840において、ノードベクトル1640のノードレコード1642の現在の値νは、(Nに等しい)jに等しく設定される。ステップ1842において、ノードレコードの現在の数νが1より大きい場合、同じ演算子を有する全てのノードレコード1642を収集するとともにそのようなレコードを結合するためにノードベクトルがスキャンされる。スキャンの前に、ノードレコードの数の変化を検知できるようにするために、ノードレコードの現在の数ν*=νは記録される(ステップ1843)。ステップ1844において、インデックスkはゼロに等しく設定されるとともに、ステップ1846は、ノードレコード1642(k)の演算子θ=V(k)を記録する。ステップ1848は、ノードベクトル1640の後続ノードレコードを検査して、同じ演算子θを有する後続ノードレコードの数μを特定する。特定された後続ノードレコードの数μがゼロの場合(ステップ1850)、インデックスkはステップ1852において1だけ増加されるとともに、インデックスkが現在のノードレコードの数νより小さい場合、ステップ1846は再訪される。そうでないならば、ステップ1856は、同じ演算子θのノードレコードの(μ+1)個のオペランドを収集するとともに、(μ+1)個のオペランドに演算子θを適用して、結合ノードレコードの新しい状態Bを決定する。ステップ1860において、後続のμ個の特定されたノードレコードは削除されるとともに、ステップ1862はノードレコード1642(k)のノード状態フィールドU(k)に新しい状態Bを、かつノードレコード1642(k)の演算子フィールドV(k)にサクセサ演算子S(θ)を挿入する。残りのノードレコードの数は、ステップ1864において(ν—μ)として決定される。ノードベクトル1640が共通の演算子のさらなるノードレコードを含むかどうかを決定するために、ステップ1852および1854がステップ1864の後に適用される。kがνより小さいことをステップ1854が決定した場合、ノードベクトルのスキャンはステップ1846から継続する。そうでなければ、ステップ1854がk=νであると決定した場合(kはνを超えられない)、ステップ1855は、(ステップ1864において最後に更新された)νの現在の値は、以前の値ν*よりも小さいことを確認する。層でなければ、ステップ1880においてエラーが報告される。特に、ブール演算式のユーザが提供した表現が正しくなければ、ステップ1855の要求ν<ν*は満たされない。ν<ν*の場合、ステップ1855にステップ1842が続く。残りのノードレコード数が1であることをステップ1842が決定した場合、それぞれの編集動作を決定する状態B*を決定する(ステップ1890)ために、残りのノードレコードの演算子がそれぞれのオペランドに適用される。]
[0100] 図19は、図16のリーフベクトル1620を形成する図18のステップ1820の詳細である。ステップ1920において、フィルタ(条件)のセットが形成されるとともに、ステップ1922において、図5および図6を参照して説明されたようなユーザ入力に基づき、リーフの演算子が決定される。対応するリーフレコード1622を生成するために、リーフの演算子は連続的に適用される。少なくとも1つの演算子が未だ適用されていないとステップ1924が決定した場合、ステップ1926は、リーフベクトルに新しいリーフレコード1622を追加する。ステップ1928は、残りの演算子の1つを選択するとともに、ステップ1930は、リーフレコードの演算子フィールド1624に関連付けられたフィルタを追加する。選択された演算子に属する全てのフィルタが現在のリーフレコード1622に含まれたとステップ1932が決定するまで、ステップ1930は繰り返される。現在のリーフレコード1622が完成すると、ステップ1932において決定されたように、ステップ1924は再訪される。全てのリーフの演算子が考察されたとステップ1924が決定すると、完成リーフベクトル1620は、図18のステップ1824に提示される。] 図16 図18 図19 図5 図6
[0101] 図20は、フィルタのセットのそれぞれの値に対して、ルールのブール演算式の2進値を予め算出する方法を説明する。フィルタのセットは、ストリング内の各ビットが、それぞれ1つのフィルタに対応するように、フィルタへの1対1対応を有する複数のビットを有するビットストリングによって表される。μ>1個のフィルタならば、ストリングは、μビットおよび0から2μ—1まで変化する仮定値を含む。ステップ2012において、(μビットが全てゼロに設定された)0の開始ストリング値が設定され、2μ個のエントリを有するルールベクトルのそれぞれのエントリは"0"に初期化される。ステップ2014において、図10、15、または17を参照して説明された方法の1つを使用して、ブール演算式が評価される。ステップ2016において、2進の結果(「真」「偽」)が、ストリングの現在の値(0から2μ—1)に対応する位置でルールベクトルに格納される。ステップ2018において、ストリング値は、1を加算することによって増加される。ストリングのμビットのそれぞれが0の値を有するとステップ2030が判断した場合、ルールベクトルの生成は完了する(ステップ2040)。特に、μビットのそれぞれが"1"の値を有するストリングは、ルールベクトルの(2μ—1)番目のエントリに対応するとともに、ステップ2018において1を加えることで、ストリングをμ個のゼロにリセットする。それに代えて、ストリングは、ルールベクトルの生成完了を指示するために使用される最重要ビットを伴う(μ+1)ビットを有してもよい。ルールベクトルは、次いで、実行時にブール演算式の2進値を直接決定し、それによってコンテンツフィルタリングシステムのスループットを増大するのに使用されてもよい。] 図10 図20
[0102] 総じて、データコンテナのコンテンツをフィルタリングする方法は、その結果、次のステップを備える。
(1)それぞれのフィルタは、コンテンツの選択された記述子および個々の記述子の基準の関数である、フィルタのセット(2進条件)が定義される。
(2)それぞれのルールは、ブール演算式および対応するコンテンツフィルタリング動作を指定する、ルールのセットが定義される。
(3)ブール演算式は、一度に1つ考察される。
(4)フィルタ(2進条件)のμ個のブール演算式を考察する。フィルタは、μビット、μ>1のストリングとして表される。
(5)ストリングの2μ個の値のそれぞれに対してブール演算式を評価し、それぞれのエントリがストリングの2μ個の値の1つに対応するコンテンツメトリックの状態である、2μ個のエントリからなるルールベクトルを生成する。
(6)全てのブール演算式に対してステップ(5)を繰り返す。
(7)データコンテナを受信およびパースする。
(8)データコンテナのコンテンツにより、ルールを選択するとともに選択されたルールの指定されたμ個のフィルタの値を決定する。
(9)選択されたルールに対応するルールベクトルをインデックス付けするとともに、μビットからなるストリングによって決定されるインデックスに対応するルールベクトル内のエントリの値を決定する。
(10)エントリの値によりコンテンツフィルタリング動作を実行する。
(11)新しいルールが受信済みコンテナに適用される必要がある場合、ステップ(8)から(10)を繰り返す。]
[0103] 図21は、L1、L2、L3、およびL4と記される4つのフィルタのセット(μ=4)のブール演算式を指定するルールのためのルールベクトルを説明する。フィルタのセットは、4ビットからなるストリングによって表される。ブール演算式は、'0000'から'1111'まで変化する、ストリングの16個の値2112のそれぞれに対して評価され、ストリングのストリング値j、0≦j<μに対応して、「真」または「偽」として指示される2進出力2114(j)を生成する。] 図21
[0104] コンテナの受信に応じて、図21で考察されたルールの4個のフィルタのセットを決定するために、コンテナコンポーネントのコンテンツが検査される。例えば、4個のフィルタが値"1"、"0"、"0"、および"1"を有する場合、"1001"のストリング2140を生成し、ブール演算式の値は2進ルールベクトル2114の位置9(2進1001)から直接読まれる。] 図21
[0105] 図21の例示的説明を伴う図20の方法は、中程度の数の演算子(フィルタ)のブール演算式を採用するルールに適している。例えば、8フィルタを伴うならば、2進ルールベクトル2114は比較的短く、256ビットを有するに過ぎない。例えば、ブール演算式が16個以上のオペランドを有する場合、大きな2進ルールベクトルを格納するよりもむしろ、評価が必要とされる都度ブール演算式を評価するのが好ましい。16を超えるブール演算式当たりのオペランドの数は、あり得ないかもしれない。] 図20 図21
[0106] 図22は、フィルタ定義およびルール定義に関連するデータエントリの処理を説明する。処理は、ルールファイルが既に生成されているかどうかを決定すること(ステップ2220)から開始する。もしルールファイルが未だ生成されていないのであれば、ステップ2222は、当業者に公知である通常の方法を使用してファイルを生成する。次のステップは、ルールファイルにルールを追加する。ルールファイルの投入および更新はステップ2224において開始する。ステップ2224はルールファイルを開くとともに、新しいルールが符号化されかつルールファイルに追加されるべきかどうかをユーザに指示するように促すステップ2226に処理を移動させる。ルールファイルの投入および更新は、ユーザによって停止される(ステップ2280)。より多くのルールが追加される場合、ユーザインターフェース520(図5、または動作、管理、および維持モジュール230(図2))に配置されるデータ取得モジュール(図示せず)は、ルールテンプレートを生成する(ステップ2230)。ルールテンプレートは、選択的に多くの形式の1つを取ってもよく、ユーザによって決定されてもよい。ルールテンプレートの形式は、(1)ユーザによって指定されるルールが連続的に適用されるべきかまたは階層型順序により適用されるべきか、および(2)ルールのブール演算式が代数解析的フォーマットで入力されるべきか、ツリーのノードが演算子および個々のオペランドを表すツリー構造フォーマットで入力されるべきか、に依存する。何れの場合においても、データ取得モジュールは、データ入力を容易にする命令を伴うそれぞれのテンプレートを提供してもよい。例えば、データ取得モジュールは、それぞれが演算子およびオペランドのセットを備える単純演算を入力するようにユーザに促し、次いで好ましい表現に進むことによって、ブール演算式の代数形式を構築するようユーザを案内してもよい。構築された表現の有効性は、新しい演算子の追加のそれぞれに伴い検証されてもよい。ブール演算式がツリー構造として提示される場合、データ取得モジュールは、ツリーの選択済みノードに関するデータをユーザが入力すると、剪定および検証されうる、一般的なツリー構造を表示してもよい。] 図2 図22 図5
[0107] ステップ2232において、任意の適したフォーマットで符号化されたルール識別子が提供される。ステップ2234において、ルール動作が指定されるとともに、ステップ2240は、ルールに関連付けられたブール演算式を定義する。特定のルールのルール動作は、関連付けられたブール演算式の値により適用される。ステップ2240は、ステップ2242、2244、2246、2248、2250、2252、および2260を備える。ステップ2242は、図3内の参照符号340で説明されたフィルタテンプレートを生成する。ステップ2244は、考察下のコンテナのコンテンツの多くの記述子の1つであってもよいフィルタのタイプを設定する。ステップ2246は、単項演算子、2進演算子、算術演算子、比較演算子、論理演算子、集合演算子、およびユーザ定義演算子からなるメニューから選択されてもよい、フィルタの演算子を設定する。ステップ2248は、ステップ2244において選択された記述子に関連する目標値または閾値である、フィルタ基準を設定する。ステップ2250は、ルールのための新しいフィルタを定義すること、またはこれまでに指定されたフィルタのセットに適用されるブール演算式を定義することに進むことをユーザに促す。他のフィルタを追加するために、ステップ2250において全ての関連するフィルタが存在することをユーザが決定するまで、ステップ2242から2248は再訪される。ステップ2252は、上述のフォーマットの1つによりブール演算式を入力するようにユーザに促す。単一のフィルタの値を使用してステップ2234において指定されたルール動作が適用されるかどうかを決定する受動演算子にブール演算式を縮小する図9の場合において説明されたように、ルールは1つのフィルタのみに基づいてもよいことに留意する。] 図3 図9
[0108] ステップ2260は、ステップ2224で開かれたルールファイルに丁度構成されたばかりのルールを追加する。こうして構成されたそれぞれのルールのフィルタの値は、受信済みコンテナの処理に応じて「実行時」と決定されるべきであることに留意する。符号化済みルールは、単にフィルタを格納する配列(図示せず)のインデックスであってもよいフィルタ識別子を含む。]
[0109] 図22の処理はシステムのインストールまたは更新の間に実行される。符号化されるとともに、ルールファイルに格納されたルールは、「リアルタイム」にアクティブ化される。] 図22
[0110] 図23は、複数のコンポーネントを有する受信済みマルチメディアコンテナのコンポーネントの連続フィルタリング処理を説明する。コンテンツフィルタリングのためのコンテナのコンポーネントの処理順序は任意であり、かつユーザによって設定されてもよい。他の動作上の理由によってコンテナ全体に全体的な束縛が課される場合、コンポーネントの処理順序は逐次的(consequential)になる。] 図23
[0111] 制御部240(図2)によって促された場合、コンテンツフィルタリング処理はステップ2320で開始する。コンポーネントを処理すべき順序を選択すると、ステップ2340は、少なくとも1つのコンポーネントは、ステップ2350においてなお処理されるべきかどうかを決定する。そうでなければ、ステップ2380は処理を終了するとともに、結果を報告する。ステップ2360において、考察下のコンポーネントに適用可能なルールのセットの全てのルールが実行され、かつ他のコンポーネントが処理される必要があるかを決定するためにステップ2340が再訪される。モジュールは、コンポーネントに適用された全てのフィルタリング動作を指示する通知を挿入する。] 図2
[0112] 図24は、コンテナのコンテンツにルールのセットが適用されるステップ2360(図23)の詳細である。ステップ2360は、コンテナのコンポーネントに適用する。ステップ2424は、ルールのセット全体が適用されたかどうかを決定する。そうであれば、ステップ2480は、ルールのセットの実行から生じる全てのコンテンツフィルタリング動作を指示する通知をコンテナに追加する。そうでなければ、ステップ2428は、現在のルールを選択するとともに、選択済みの現在のルールに関連付けられた全ての関連フィルタの定義を取得する。特に、1つのルールが他のルールの選択に影響する場合、ルールが特定の順序で配置されてもよい。それに加えて、ルール間依存は、図25を参照して説明されるように、単純な配列よりもむしろ形式グラフによって表現されてもよい。] 図23 図24 図25
[0113] ステップ2430は、選択された現在のルールを実行する。ステップ2430は、ステップ2432、2436、2440、および2444を含む。ステップ2432は、ステップ2428において特定された全てのフィルタが、各フィルタの2進値を決定するためにアクティブ化されるかどうかを決定する。フィルタは、それぞれのオペランドにフィルタの演算子が適用されフィルタの2進値を生成する場合に、アクティブ化されるといわれる。現在のルールに関連する全てのフィルタがアクティブ化された場合、ステップ2432はステップ2460に制御を移す。その他の場合、考察下のフィルタ値を生成するために、ステップ2436、2440、および2444が実施される。ステップ2436は、図5および図6を参照点説明されるように、考察下のコンテナコンテンツの特徴に基づいて、演算子およびそれぞれのオペランドの値を取得する。ステップ2440は、オペランドに演算子を適用し、かつステップ2444は、現在のルールのブール演算式を評価するときに使用するための現在のフィルタの値を記録する。] 図5 図6
[0114] ステップ2460は、図10、図15、または図17の符号化方法の1つによるブール演算式を取得する。ステップ2464は、ブール演算式を評価する。ステップ2468は、ステップ2464において決定されたようなブール演算式の値に従って、現在のルールに関連するコンテンツフィルタリング動作を考察下のコンテンツのコンテンツに適用してもよい。ステップ2470において、もし現在のルールのコンテンツフィルタリング動作がコンテナコンポーネント全体の削除を生じたならば、後続のルールはあっても実行する必要はなく、かつステップ2360は削除済みコンポーネントに個々の通知を追加する。もしコンポーネントが編集されなかった、または編集されたが削除されなかったならば、考察下のコンテンツにさらなるルールが適用される必要があるかどうかを決定するためにステップ2424は再訪される。添付物が特定の閾値を超過する、または除去不能である悪意のある挿入を添付物が有しているならば、コンポーネント全体は削除されてもよい。] 図10 図15 図17
[0115] ルール間依存
一般的に、特定のコンテンツに適用可能なルールは、補完動作、対立動作、または相互排他動作を有しうる。補完動作では、コンテンツフィルタリングの結果は、ルールを実施する順序に依存しなくてもよい。対立動作または相互排他動作では、1つの動作が他に優先する。本願発明の実施形態に従い、ユーザは、グラフを使用してルール間関係を定義するように促されてもよい。]
[0116] 図25は、ルール1からルール5と記された5個のルールの階層型配置を示すグラフを説明する。ルールの状態は、本願明細書において、ルールのブール演算式の実行から生じる2進値として定義される。] 図25
[0117] ルール1の「真」の状態は、"action 1"とラベル付された動作を生じ、その後にステップ2360は完了したと見なされる。"action 1"は、2つの正反対、1つめは、コンポーネント全体が大きすぎるまたは修復不能であるいずれかのためにコンポーネント全体を削除することと、2つめは、コンポーネントが悪意のある挿入を含むには小さすぎるのでコンポーネントは受け入れ可能であると決定することと、のうち1つを指示してもよい。ルール1の「偽」の状態は、コンテンツが1番目のテストを通過したことおよび2番目のルール2のテストに従うべきであることを指示する。]
[0118] ルール2の状態「真」は、ルール5の実施が続く"action 2"とラベル付された動作を生ずる。ルール2の「偽」の状態は、コンテンツが2番目のテストを通過するとともに、3番目のルール3のテストに従うべきであること等を指示する。ルール4が「偽」である場合、処理は、コンテンツを編集することなく終了する。処理は、また、(ただ)1つ:{動作1}、{動作2および動作5}、{動作3}、および{動作5}を実施した後に終了してもよい。]
[0119] 図26は、以下に一覧される、動作管理部230によって使用されるモジュールを説明する。各モジュールは、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を備える。(1)特定のプロトコルにより形成されたマルチメディアデータコンテナをサーバユニットが受け入れるように構成する、サーバユニット構成モジュール2610、(2)共通タイプのデータコンテナを処理するように個別に構成されたサーバユニットの間で、マルチメディアデータコンテナを均等に分配する、負荷均衡化モジュール2612、(3)それぞれのフィルタは、コンテンツ記述子、記述子の基準、および演算子の定義を指定するフィルタのセットの定義をユーザから取得する、フィルタ定義モジュール2614、(4)代数文法によりユーザがブール演算式を提供することを可能にする、ブール演算式取得モジュール2616、(5)ツリー構造の形式でユーザがブール演算式を提供することを可能にする、ブール演算式取得モジュール2618、(6)それぞれのツリーノードが演算子および個々のオペランドセットを表す、一般的なツリー図を編集および選定することによって、ユーザがブール演算式を入力することを可能にする、ブール演算式取得モジュール2620、(7)それぞれのルールがフィルタの部分セットのブール演算式およびフィルタリング動作を指定する、コンテンツフィルタリングルールのセットをユーザから取得する、ルール構築モジュール2622、(8)ルールに対して指定されたブール演算式の正当性を検証する、ルール検証モジュール2624、(9)ルールによって実行される特定のフィルタリング動作が少なくとも1つの後続ルールの実行を防ぐ順序にルールを配置するルール配置モジュール2626、(10)与えられたルールのそれぞれのブール演算式の値を条件とする与えられたルールの後続ルールをユーザが指定することを促すルール間依存モジュール2628、(11)形式グラフの形式(図25)で、コンテンツフィルタリングルールのセットを提示するルールグラフ定義モジュール2630、(12)通常のロジック最適化技術を使用して、各ルールのブール演算式を最適化して、処理労力を最小化するルール最適化モジュール2632、(13)多くともプリセットされた数のフィルタを有するフィルタの部分セットをそれぞれ指定する特定のルールを選択し、特定のルールのそれぞれについて、フィルタの部分セットの全ての値に対してフィルタの部分セットのブール演算式を評価し、μ>1をフィルタの部分セット内のフィルタの数として、2μビットからなる配列を生成し、かつメモリデバイス(図20および21)においてビットの配列を格納するルール前処理モジュール2634、(14)それぞれのコンテナタイプは、ソースでコンテナが形成されたプロトコルに対応する、コンテナタイプにコンテナを並べ替えするとともに、複数のコンテナの中からの特定の制御部に特定のタイプのコンテナを移動させる、ネットワークインターフェース210および動作管理部230に関連付けられてもよい、並べ替えモジュール2636。並べ替えモジュール2636は、ネットワークインターフェース210または動作管理部230に関連付けられていてもよい。] 図20 図25 図26
[0120] 図27は、本願発明の実施形態に従い、トランスコーダ280によって使用され、以下に一覧されるモジュールを説明する。各モジュールは、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を備える。
(a)マルチメディアデータコンテナの各コンポーネントのコンテンツを特徴付け、コンテンツ記述子を決定し、演算子を適用し、かつフィルタの状態を決定するモジュール2710。(b)ブール演算式の実行時評価およびルールの2進出力の決定のためのモジュール2720。ブール演算式は、代数文法またはツリー構造により提示されてもよい。(c)個々のルールのブール演算式のプリセットされた値に従い、与えられたコンテナコンテンツに関するフィルタリング動作を実行するモジュール2730。] 図27
[0121] 図28は、本願発明の実施形態に従う、トランスコーダサービスモジュール2810、プログラムレジストリ2820、およびプログラムストレージ2840を備えるトランスコーダ280を説明する。トランスコーダサービスモジュールは、実行されたときに、プロセッサのコアに、複数の制御部からの特定の制御部から、特定のコンテナおよび編集要求を受信させ、編集要求に関連するプログラムを選択および実行させ、かつ特定の制御部に結果を戻させる、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を備える。プログラムレジストリは、実行されたときに、プロセッサに、個々の機能によりプログラムをオーガナイズさせ、かつ既存のプログラムをそれぞれの新しいプログラムに置換させる、コンピュータ可読命令を備える。] 図28
[0122] 制御部240(図2)は、トランスコーダ280に編集要求を転送する。編集要求2850の受信に応じて、トランスコーダサービスモジュール2810は、編集要求に含まれる情報を使用して、どのプラグインプログラムを実行するかを特定する。トランスコーダサービスモジュール2810は、選択されたプラグインプログラムを実行するとともに、結果をそれぞれの制御部240に戻す。] 図2
[0123] 「プラグイン」は、本願明細書において、特定のタスクを実行するように工夫された自己完結モジュールとして定義される。プログラムストレージ2840は、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を備え、かつ(a)最初にロードされた常駐プラグイン2842、および(b)動的にロードされ、常駐プラグインを置換してもよい外部プラグイン2844、の2つのタイプのプラグインを有する。]
[0124] 常駐プラグインは基本機能を提供し、かつ外部プラグインは追加機能を提供し、コンテンツフィルタリングおよびウィルススキャンは、そのような機能の2つの例である。]
[0125] プラグインは、プラグイン登録およびアクセスを管理するプログラムレジストリ2820と共に登録される。プログラムレジストリ2820は、プラグインの特徴に基づきプラグインをオーガナイズする。プラグインは、プラグイングループ内に配置されてもよい。]
[0126] プラグインプログラムは、予め定められた仕方でプラグインの実行をオーガナイズする。プラグインプログラムは、特定の目標を有する予め定められたプラグインのセットに対して実行ロジックを決定する単純命令のセットから構築される。]
[0127] プラグインを使用する簡潔なプログラムの命令例は、次に提示される。]
[0128] ]
[0129] 左側の数字は、参照を容易にするためにのみ導入されており、かつ必ずしも命令の一部を構成するものではない。]
[0130] 各"Execute"コマンドは、常に常駐プラグインの名称を参照する引数としてプラウグインの名称を有する。外部プラグインは、選択的であり、かつそれ故に存在する場合にのみ実行されるので、名称によって直接参照されない。各"Execute Group"コマンドは、引数としてプラグイングループの名称を有する。コマンド"Execute Group"は、当該グループに属する全てのプラグインを実行する。]
[0131] 1行目は、プログラムの全てのエラー時に14行目にジャンプするとともに、15から18行目をもって実行を再開することを記述する。2および3行目は、完了すべき適合のセットアップを実行する。4行目は、必要であれば入力の復号化を実行し、例えば入力がEメールの場合、Eメールは部分コンポーネントに分解される。5行目および9行目は、コンテンツフィルタリングプラグインが属するプラグイングループを実行する。従ってもし存在すれば、5行目を実行開始するとともに9行目で終了する。6行目および7行目は、それぞれ、適合パイプラインの生成に必要なセットアップ動作を実行するため、および適合パイプラインを実際に生成するために使用される。適合パイプラインは、要求された適合を行うために実行されるべき動作のセットを含む。8行目は、適合パイプラインが実行される前に適合パイプラインに影響を与える全ての外部プラグインを実行することを意図する。10行目は、適合に参加する入力コンポーネントの詳細を提供する。18行目は、出力コンポーネントに類似のタスクを実行する。そのような情報は、報告、課金、および必ずしも適合機能に関連しない他の目的のために解析されてもよい。11行目は適合パイプラインの最適化を実行する。12行目は、適合パイプラインの実行の前に適合パイプラインの解析および最適化を実行する全ての外部プラグインを実行する。13行目は適合パイプラインを実行する。15行目は、適合パイプラインの実行結果として生成される出力コンポーネントを特徴付ける。16行目は、生成された出力コンポーネントに影響を与える全ての外部プラグインを実行する。そして、17行目は、(詳細な適合レコードを提供するような)適合を完成させる追加のステップを実行する。]
[0132] ルールは、"Rule Files"として永続的に格納される。ルールファイルは、2以上の制御部に対して適用されてもよい。ルールファイルを使用したコンテンツフィルタリングは、メディア(コンテンツ)に対して、ルールファイルに含まれるルールを適用する。与えられたルールが「真」の場合、対応する動作が実行される。動作は、(携帯固有のウィルスを含む)ウィルスのような好ましくないコンテンツを除去することと、(ゲームのような)特定のタイプのメディアを除去することと、サードパーティのアプリケーションを使用して(メディアをウィルススキャンするように)メディアに動作を実行することとを含んでもよい。しかしながら、特定のタイプのコンテンツは、処理せずに通過してもよい。]
[0133] ルールの定義は、動作管理部230(図2)においてなされる。コンテンツ編集(フィルタリングおよび適合)に影響するルールの適用は、トランスコーダ280においてなされる。一度、ルールファイルが生成されると、次いで、適合要求が選択するトランスコーダ280へ全ての適合要求と共にルールファイルを送信するように、ユーザが、制御部240の1つを選択的に構成する。] 図2
[0134] 動作"Drop"は、メディアがコンテンツ適合処理の出力の一部ではないことを確実にする。動作"scan keep"は、メディアのウィルススキャンをもたらす。これは、アンチウィルスプラグインがインストールされていることを仮定する。適切なプラグインプログラムのアンチウィルスプラグインが実行される実行箇所で、"scan for virus"とマークされる全てのメディアがウィルススキャンされるように、メディアは、実際に"scan for virus"として「マーク」される。]
[0135] ルール1と呼ばれるルール例は、以下に与えられる。]
[0136] ]
[0137] ルール1に関連付けられた名称は"MaxFileSize50000"であり、当該ルールに対応する動作は、当該ルールに含まれるフィルタに合致する全てのメディアを除去するための"Drop"である。このルールは2つのフィルタを指定する。第1フィルタは、ファイルのサイズに対して適用される"MaxFileSize"タイプである。フィルタ演算子は、"GreaterThan"であり、値は"50000"である。第2フィルタは、"Family"と呼ばれるタイプによって特徴付けられる。このフィルタは、メディアのファミリー(例えばIMAGE,AUDIO等)に対して適用される。当該フィルタに関連付けられる演算子は"NotEqual"であり、値は"MESSAGE"である。フィルタは、ブール演算子"AND"を使用して結合される。このようにして、ファイルが50000より大きなサイズを有するとともに、"MESSAGE"ファミリーではないならば、指定された動作が実行される。]
[0138] ルール2と呼ばれる他のルールは次に説明される。]
[0139] ]
[0140] ルールの名称は"MaxFileSize25000AndContentTypes"であり、対応する動作は "Drop"である。ルール2の目的は、ルール内に含まれるフィルタに合致する全てのメディアを除去することである。ルール2の構造の詳細な説明は、次に示される。]
[0141] 次のフィルタのみが指定される。]
[0142] 1番目のフィルタ:
−フィルタタイプは"MaxFileSize"であり、かつフィルタはファイルのサイズに対して適用され、
−演算子は"Greater Than"であり、
−値は"25000"である。
"AND"ブールフィルタリング演算子を伴う開括弧。
2番目のフィルタ:
−フィルタタイプは"ContentType"であり、かつフィルタはメディアの(mimetypeと等価である)コンテンツタイプに対して適用され、
−演算子は"Equals"であり、
−値は"image/wbmp"である。
3番目のフィルタ:
−ブールフィルタリング演算子"OR"を有し、
−フィルタタイプは"ContentType"であり、かつフィルタはメディアの(mimetypeと等価である)コンテンツタイプに対して適用され、
−演算子は"Equals"であり、
−値は"image/png"である。
閉括弧。]
[0143] このように、ファイルが"25000"よりも大きなサイズを有し、かつ("image/wbmp"に等しいコンテンツタイプ、または"image/png"に等しいコンテンツタイプを有する)ならば、ルールで指定された動作が実行される。動作はメディア、またはメディアが電子メールまたはMMSのようなコンテナであるならばそのいずれかの添付物、に作用する。動作は、"keep"(メディアを適合)、"keep & scan"(適合前にメディアをウィルススキャンする)、"drop"(最終メッセージに添付物を含ませない)、"pass-through"(メディアを適合せず、変更しない)を含んでも良い。]
[0144] 共通のルールファイル内で定義された実施例ルール3は、次に説明される。]
[0145] ]
[0146] 他の実施例において、共通のルールファイルを完成するルール4が提示される。]
[0147] ]
[0148] この場合、共通ルールファイルは、300000より大きいサイズを有する全てのファイルを「ドロップ」するルール3、およびメッセージである全てのメディアにウィルススキャンを実行するルール4、を含む。]
[0149] 共通のルールファイルが全ての制御部に適用されるとともに、いくつかの制御部"X"がルール1および2を含むルールファイルを定義した場合を考察する。選択されたトランスコーダに適合要求を送信する場合、当該制御部は、ルール1から4を含み、"RuleFile1"と呼ばれるルールファイルを送信する。"RuleFile1"の構造が提示される。]
[0150] ]
[0151] この特徴を提供する実施形態のコンテキストにおいて、ルールファイル内のルール構造を管理するのにXMLが使用される。これによって、ポータビリティおよびスケーラビリティが確保される。XML版のRuleFile1が次に示される。]
[0152] ]
[0153] コンテンツフィルタリングの例は以下に示される。マルチメディアコンテナ:
MMS特徴:
名前: mms1.mms
ファミリー: MESSAGE
サイズ: 171100
コンテンツタイプ: application/vnd.wap.multipart.mixed
添付物の数: 3
MMS 添付物の特徴:
名前: image.jpg
ファミリー:IMAGE
サイズ: 75000
コンテンツタイプ: image/jpg
名前: image2.jpg
ファミリー: IMAGE
サイズ: 45000
コンテンツタイプ: image/jpg
名前: image.png
ファミリー: IMAGE
サイズ: 50000
コンテンツタイプ: image/png
を考察する。]
[0154] コンテンツフィルタリングは、次のステップにより実行される。
MMSがコンテンツフィルタリングを通る:
−メディアはファミリー"MESSAGE"に属するので、このメディアに対して、ルール"VirusScan"は"true"に評価し、
−メディアは"scan for virus"とマークされる。
添付物image.jpgがコンテンツフィルタリングを通る:
−メディアはメッセージではなく、かつメッセージのサイズは50000より大きいので、ルール"MaxFileSize50000"は、"true"に評価し、
−メディアは、"Drop"とマークされる。
添付物image2.jpgがコンテンツフィルタリングを通る:
−このメディアに対して、何れのルールも"true"に評価されない。
2番目の添付物image.pngがコンテンツフィルタリングを通る:
−メディアは25000より大きいサイズを有し、かつコンテンツタイプは"image/png"なので、ルール"MaxFileSize25000AndContentTypes"は、このメディアに対して"true"に評価し、
−メディアは、"Drop"とマークされる。]
[0155] プラグインプログラムは、コンテンツフィルタリングプラグインの実行後に再開する。これにより、アンチウィルスプラグインによる、MMSメディアおよびそのコンテンツのウィルススキャンを生ずる。適合処理は、次いで開始する。適合およびコンテンツフィルタリングによって、次の形式の出力MMSが生成される場合を考察する。]
[0156] MMS特徴:
名前: mms1out.mms
ファミリー: MESSAGE
サイズ: 25175
コンテンツタイプ: application/vnd.wap.multipart.mixed
添付物の数: 2
MMS 添付物の特徴:
名前: image2.gif
ファミリー:IMAGE
サイズ: 24000
コンテンツタイプ: image/gif
名前: removal_notification.txt
ファミリー: TEXT
サイズ: 75
コンテンツタイプ: text/plain]
[0157] コンテンツ適合の結果として、"image2.jpg"は、出力"image2.gif"に適合されたと仮定している。"image.jpg"および"image.png"は、「ドロップ」されるとともに、コンテンツフィルタリング動作が適用されて生じる出力MMSの一部ではないことに留意する。新しいメディア"removal_notification.txt"が出力メッセージに追加される。これは、"image.jpg"および"image.png"の除去から生じる。トランスコーダは、メディアの除去に応じて、説明テキスト通知が添付されるように工夫されている。この通知は、元々MMS内にあったメディアのいくつかは適合できず、かつ除去されたことの説明をMMSの受信機に提供するように意図されている。]
[0158] トランスコーダ内に、アンチウィルススキャンが外部プラグインの形式で存在する。この場合、プラグインアーキテクチャは、McAfee(登録商標)、Kaspersky(登録商標)のようなサードパーティのアンチウィルススキャンエンジンへのインターフェースを提供するのに使用される。アンチウィルスプラグインの存在は、任意の外部プラグインのように選択的である。プラグインプログラムのレベルでは、アンチウィルスプラグインを実行することを意図するプラグインプログラムは、アンチウィルスプラグインが属するプラグイングループを実行するコマンドを含んでもよい。]
[0159] アンチウィルスプラグインの実行は、メディアがウィルススキャンされることを自動的には意味しない。ウィルススキャンは、コンテンツフィルタリングによって"scan for virus"とマークされたメディアにのみ実行される。いくつかのサードパーティのアンチウィルスエンジンは、スタンドアロンライブラリとしてインストールされてもよい。他のサードパーティのアンチウィルスエンジンは、クライアント−サーバとしてインストールされてもよい。アンチウィルスプラグインは、サードパーティのアンチウィルスエンジンに正しく接続されるような仕方で書かれる。どの場合においても、アンチウィルスプラグインは、コンテンツ適合が行われるメディアにウィルススキャンを実行するための、トランスコーダのエントリポイントである。]
[0160] このようにして、上述の実施形態においては、次の機能、(1)添付物をチェックするためにメッセージをパースする機能と、(2)コンテンツタイプに従ってフィルタするために添付物を特徴付ける機能と、(3)ユーザ定義された拡張可能な階層型のルールのセットを適応して、メディア要素が好ましいか否かを決定する機能とが提供される。]
[0161] 編集動作は、メディア添付物がどのように取り扱われるかを決定する。編集動作は、適合処理に添付物を提供することと、適合処理に提供する前に添付物を維持するとともにメディアをウィルススキャンすることと、添付物をドロップすることとの1つ以上を含んでもよい。編集動作は、アンチウィルスおよび進入防止ソフトウェアプログラムを起動することを含んでもよい。]
[0162] 本願発明の特定の実施形態が詳細に説明されてきたが、説明された実施形態は、例示的であるとともに非限定的であることを意図している。図面内に示され、かつ明細書内で説明された実施形態の様々な変形および修正が、本願発明の範囲を逸脱することなく、より広範な構成で、特許請求の範囲内でなされうる。]
权利要求:

請求項1
マルチメディアデータコンテナのコンテンツをフィルタリングするシステムであって、ネットワークからの前記マルチメディアデータコンテナを受信するためのネットワークインターフェースと、複数のサーバユニットと、を備え、各サーバユニットは、プロセッサセットと、コンピュータ可読媒体に格納されたコンピュータ可読命令を有し、各フィルタがコンテンツ記述子、記述子の基準、および演算子の定義を指定するフィルタのセットの定義をユーザから取得するためのフィルタ定義モジュール、コンピュータ可読媒体に格納されたコンピュータ可読命令を有し、各ルールが前記フィルタの部分セットのブール演算式およびフィルタリング動作を指定する、コンテンツフィルタリングルールのセットを前記ユーザから取得するための、ルール構築モジュール、マルチメディアデータコンテナの各コンポーネントのコンテンツを特徴づけ、前記コンテンツ記述子を決定し、前記演算子を適用し、かつ前記各フィルタの状態を決定するモジュール、前記各ルールの2進出力を決定するためのモジュール、および前記2進出力のプリセット値に従う前記コンテンツに関連するフィルタリング動作を実行するモジュール、がインストールされたメモリデバイスのセットと、を有するシステム。
請求項2
代数文法による前記ブール演算式を、前記ユーザが提供することを可能にするためのモジュールをさらに備える請求項1に記載のシステム。
請求項3
前記ユーザが、前記ブール演算式をツリー構造の形式で提供することを可能にするためのモジュールをさらに備える請求項1から2のいずれか1項に記載のシステム。
請求項4
ツリーの各ノードが、演算子および対応するオペランドセットを表す、前記ツリーの図面を編集及び剪定することによって、前記ユーザが前記ブール演算式を入力することを可能にするためのモジュールをさらに備える請求項1から3のいずれか1項に記載のシステム。
請求項5
ルールによって実行される特定のフィルタリング動作が少なくとも1つの後続ルールの実行を除外する順序に、前記ルールを配置するためのモジュールをさらに備える請求項1から4のいずれか1項に記載のシステム。
請求項6
前記コンテンツフィルタリングルールのセットを形式グラフ(formalgraph)の形式で表示するためのモジュールをさらに備える請求項1から5のいずれか1項に記載のシステム。
請求項7
多くともプリセットされた数のフィルタを有するフィルタの部分セットをそれぞれ指定する特定のルールを選択し、前記特定のルールのそれぞれに対して、前記フィルタの部分セットの全ての値に対して前記フィルタの部分セットの前記ブール演算式を評価して、μ>1を前記フィルタの部分セット内のフィルタの数として、2μビットからなる配列を生成し、かつビットから成る前記配列をメモリデバイスに格納するためのモジュールをさらに備える、請求項1から6のいずれか1項に記載のシステム。
請求項8
コンテンツを特徴付ける2進条件のセットを指定する段階と、1つの演算子はヌルサクセサが指定されているとともに他の各演算子は前記演算子のセットからのサクセサが指定されている演算子のセットを指定する段階と、それぞれのリーフレコードが、前記演算子のセットの中からのリーフの演算子およびそれぞれの前記2進条件の部分セットを有する、N>1個のリーフレコードを有するリーフベクトルを形成する段階と、それぞれがノード演算子フィールドおよびノード状態フィールドを有するN個のノードレコードからなるノードベクトルを形成する段階と、各リーフの演算子をそれぞれの2進条件に適用し、ノードレコードのノード状態フィールドに結果を配置する段階と、前記ノードレコードのノード演算子フィールドに前記各リーフの演算子のサクセサを配置する段階と、共通の演算子を有する特定されたノードレコードを、前記共通の演算子のサクセサを有する結合レコードで置換することと、前記特定されたノードレコードのノード状態フィールドのエントリに前記共通の演算子を適用して、前記結合レコードのノード状態フィールドに前記状態の結果を配置することとを再帰的に実行する段階と、を備える、データコンテナの前記コンテンツをフィルタリングする方法。
請求項9
前記ヌルサクセサである前記共通の演算子の前記サクセサに従い前記結果の状態としてコンテンツインデックスを決定する段階をさらに備える請求項8に記載の方法。
請求項10
前記置換の後に前記ノードベクトルのノードレコードの数を決定する段階と、1に等しいノードレコードの数に対応する前記結果の状態としてコンテンツインデックスを決定する段階と、をさらに備える請求項8から9のいずれか1項に記載の方法。
請求項11
前記コンテンツインデックスの値により、前記コンテンツに関連する指定された編集動作を実行する段階をさらに備える請求項9から10のいずれか1項に記載の方法。
請求項12
前記データコンテナの受信機を特徴付けるデータを受信する段階と、前記コンテンツおよび前記受信機の特徴の互換性を確認する段階と、前記コンテンツが前記特徴に非互換である場合、前記特徴により前記コンテンツを修正する段階と、をさらに備える請求項8から11のいずれか1項に記載の方法。
請求項13
プロセッサと、各フィルタがコンテンツの選択された記述子および前記記述子に対応する個々の基準との関数である、フィルタのセットの定義をユーザから取得するためのフィルタ定義モジュールと、前記フィルタのブール演算式および対応するコンテンツフィルタリング動作のセットを前記ユーザが提供可能にするためのブール演算式取得モジュールと、μ>1として、μビットのストリングとして表現される指定されたμ 個のフィルタのブール演算式を選択し、前記ストリングの2μ 個の値のそれぞれのブール演算式を評価して、各エントリが前記ストリングの前記2μ 個の値の1つに対応するコンテンツメトリックの状態である2μ個のエントリからなるルールベクトルを生成するための前処理モジュールと、を備え、 前記フィルタ定義モジュール、ブール演算式取得モジュール、および前処理モジュールのそれぞれは、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を有する、マルチメディアデータコンテナの前記コンテンツをフィルタリングするシステムでの使用のための動作コントローラ。
請求項14
前記ブール演算式取得モジュールは、前記ユーザが、前記ブール演算式を、ブール演算子、オペランド、およびデリミタを有する代数フォーマットで取得することを可能にする、コンピュータ可読媒体に格納されたコンピュータ可読命令を備え、前記前処理モジュールは、2つのデリミタの間にブール演算子および2つのオペランドを挟む単純パターンを特定すべく、前記ブール演算式を検査し、前記単純パターンが発見された場合、前記2つのオペランドに前記ブール演算子を適用して前記パターンの2進値を決定し、前記単純パターンおよび前記2つのデリミタを前記2進値で置換する、ための、コンピュータ可読格納媒体に格納されたコンピュータ可読命令を備える、請求項13に記載の動作コントローラ。
請求項15
前記ブール演算式取得モジュールは、ユーザが、複数のノードを有するツリー構造の形式で前記ブール演算式を取得可能にするコンピュータ可読命令を備え、前記前処理モジュールは、各レコードがそれぞれのノードに対応し、かつ第1オペランド、第2オペランド、現在の演算子、および後続レコードのための4つのフィールドを含む複数のレコードを有するツリーテンプレートを生成することと、最初のレコードから開始するとともに最後のレコードまで、それぞれの2進値に現在のレコードの演算子を適用して新しい2進値を生成する、前記現在のレコードが最後のレコードの場合、前記新しい2進値を前記ブール演算式の値として決定する、および前記現在のレコードが中間レコードである場合、前記新しい2進値を前記後続レコードのオペランドフィールドに配置することを連続的に進めることと、のためのコンピュータ可読命令を備える、請求項13から14のいずれか1項に記載の動作コントローラ。
类似技术:
公开号 | 公开日 | 专利标题
US9092471B2|2015-07-28|Rule parser
US9230039B2|2016-01-05|Adaptive data transformation engine
Ghamarian et al.2012|Modelling and analysis using GROOVE
US9128728B2|2015-09-08|Locating security vulnerabilities in source code
Young et al.1994|Decomposition and Causality in Partial-order Planning.
US8225398B2|2012-07-17|System for regulating host security configuration
US10747780B2|2020-08-18|Blockchain-based data processing method and device
CN101246486B|2012-02-01|用于改进的表达式处理的方法和装置
Sekar et al.2003|Model-carrying code: a practical approach for safe execution of untrusted applications
US9619779B2|2017-04-11|Client-side policy enforcement of developer API use
US8689330B2|2014-04-01|Instant messaging malware protection
US7464367B2|2008-12-09|Method and system for designing customizable applications and user-interfaces based on user-defined policies and metadata
Wies1995|Using a classification of management policies for policy specification and policy transformation
US8015208B2|2011-09-06|Systems and methods for processing regular expressions
JP5265378B2|2013-08-14|高性能正規表現パターンマッチングのための方法および装置
US8869110B2|2014-10-21|Method and arrangement for test case creation
RU2444056C1|2012-02-27|Система и способ ускорения решения проблем за счет накопления статистической информации
Chou et al.2001|DNA sequence quality trimming and vector removal
US7873992B1|2011-01-18|Dynamic system of autonomous parsers for interpreting arbitrary telecommunication equipment streams
CA2842218C|2019-03-05|Method and system for adaptive rule-based content scanners
JP4662080B2|2011-03-30|フィルタリングルール分析方法及びシステム
US8166465B2|2012-04-24|Method and system for composing stream processing applications according to a semantic description of a processing goal
AU2009287433B2|2014-06-05|System and method for detection of malware
US20150347783A1|2015-12-03|Database access control for multi-tier processing
US7363275B2|2008-04-22|Access right contradiction detection apparatus and analysis rule creation apparatus
同族专利:
公开号 | 公开日
CN103886376A|2014-06-25|
KR20100098385A|2010-09-06|
KR20140095111A|2014-07-31|
CA2703107C|2016-08-16|
KR101451285B1|2014-10-15|
US8019709B2|2011-09-13|
WO2009059419A1|2009-05-14|
US20090126020A1|2009-05-14|
IL204725D0|2010-11-30|
JP2013178815A|2013-09-09|
EP2218235A4|2013-10-09|
IL204725A|2015-02-26|
EP2206308A4|2013-08-21|
JP5659397B2|2015-01-28|
CN101849399B|2014-06-11|
WO2009059420A1|2009-05-14|
US20090125459A1|2009-05-14|
JP5275362B2|2013-08-28|
WO2009059420A8|2010-07-15|
CN103886376B|2017-08-25|
CN101849399A|2010-09-29|
EP2206308A1|2010-07-14|
EP2218235A1|2010-08-18|
CA2703107A1|2009-05-14|
WO2009059419A8|2010-07-15|
CA2703092A1|2009-05-14|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US6421733B1|1997-03-25|2002-07-16|Intel Corporation|System for dynamically transcoding data transmitted between computers|
JP2003523000A|1999-12-15|2003-07-29|サン・マイクロシステムズ・インコーポレイテッド|フィルタ・エクスプレション木からグラフィカル・ユーザ・インターフェースを作成するシステムおよび方法|
JP2007213350A|2006-02-09|2007-08-23|Fuji Xerox Co Ltd|情報像処理装置及び情報像処理方法。|JP2013536513A|2010-08-26|2013-09-19|ヴァントリックスコーポレーション|ストリーミングデータをフィルタリングするための方法および装置|
US9397877B2|2007-11-09|2016-07-19|Vantrix Corporation|Method and apparatus for concurrent filtering of multiple components of streaming data|US6226630B1|1998-07-22|2001-05-01|Compaq Computer Corporation|Method and apparatus for filtering incoming information using a search engine and stored queries defining user folders|
US7133400B1|1998-08-07|2006-11-07|Intel Corporation|System and method for filtering data|
US6347087B1|1998-10-05|2002-02-12|Packet Engines Incorporated|Content-based forwarding/filtering in a network switching device|
US6624761B2|1998-12-11|2003-09-23|Realtime Data, Llc|Content independent data compression method and system|
US6298340B1|1999-05-14|2001-10-02|International Business Machines Corporation|System and method and computer program for filtering using tree structure|
US7685252B1|1999-10-12|2010-03-23|International Business Machines Corporation|Methods and systems for multi-modal browsing and implementation of a conversational markup language|
US6473763B1|2000-03-31|2002-10-29|International Business Machines Corporation|System, method and computer program for filtering multi-action rule set|
US20020049705A1|2000-04-19|2002-04-25|E-Base Ltd.|Method for creating content oriented databases and content files|
US20020099829A1|2000-11-27|2002-07-25|Richards Kenneth W.|Filter proxy system and method|
US6944154B2|2000-12-06|2005-09-13|International Business Machines Corporation|System and method for remultiplexing of a filtered transport stream with new content in real-time|
US7242324B2|2000-12-22|2007-07-10|Sony Corporation|Distributed on-demand media transcoding system and method|
US7120702B2|2001-03-03|2006-10-10|International Business Machines Corporation|System and method for transcoding web content for display by alternative client devices|
US7203692B2|2001-07-16|2007-04-10|Sony Corporation|Transcoding between content data and description data|
US7383347B2|2001-07-18|2008-06-03|International Business Machines Corporation|Method and apparatus for providing extensible scalable transcoding of multimedia content|
US7551629B2|2002-03-28|2009-06-23|Precache, Inc.|Method and apparatus for propagating content filters for a publish-subscribe network|
US7432940B2|2001-10-12|2008-10-07|Canon Kabushiki Kaisha|Interactive animation of sprites in a video production|
JP3886362B2|2001-11-13|2007-02-28|富士通株式会社|コンテンツフィルタリング方法、コンテンツフィルタリング装置およびコンテンツフィルタリングプログラム|
DE10296786D2|2002-04-12|2005-02-10|Siemens Ag|Representation of Boolean expressions for specifying filters using XML|
US9124447B2|2002-07-26|2015-09-01|International Business Machines Corporation|Interactive client computer communication|
FR2847693B1|2002-11-22|2005-02-25|Bosch Gmbh Robert|Procede de conception d'une forme assistee par ordinateur et procede de construction d'une piece ainsi concue|
US20040158741A1|2003-02-07|2004-08-12|Peter Schneider|System and method for remote virus scanning in wireless networks|
US20050108176A1|2003-04-30|2005-05-19|Jarol Scott B.|Configurable rules based content item consumption|
US20050132264A1|2003-12-15|2005-06-16|Joshi Ajit P.|System and method for intelligent transcoding|
US7822801B2|2004-10-14|2010-10-26|International Business Machines Corporation|Subscription propagation in a high performance highly available content-based publish/subscribe system|
US7801874B2|2004-10-22|2010-09-21|Mahle Powertrain Llc|Reporting tools|
US7606832B2|2004-11-12|2009-10-20|International Business Machines Corporation|System and method for orchestrating composite web services in constrained data flow environments|
US7545978B2|2005-07-01|2009-06-09|International Business Machines Corporation|Methods and apparatus for filtering video packets for large-scale video stream monitoring|
US8407778B2|2005-08-11|2013-03-26|International Business Machines Corporation|Apparatus and methods for processing filter rules|
US7984180B2|2005-10-20|2011-07-19|Solarflare Communications, Inc.|Hashing algorithm for network receive filtering|
US20070112826A1|2005-11-10|2007-05-17|Vixs Systems, Inc.|Multimedia transcoding based on remaining storage capacity|
US9251520B2|2006-02-22|2016-02-02|Google Inc.|Distributing mobile advertisements|
JP2008084128A|2006-09-28|2008-04-10|Toshiba Corp|構造化文書の要素指定装置、要素指定方法及び要素指定プログラム|
EP2135376A4|2007-03-22|2012-12-19|Nielsen Co Us Llc|Digital rights management and audience measurement systems and methods|
US8442928B2|2007-11-09|2013-05-14|Vantrix Corporation|Method and apparatus for employing rules to filter streaming data|
US8447718B2|2007-11-09|2013-05-21|Vantrix Corporation|Method and apparatus for filtering streaming data|
US8478764B2|2007-11-09|2013-07-02|Vantrix Corporation|Method and apparatus for concurrent filtering of multiple components of streaming data|
US8019709B2|2007-11-09|2011-09-13|Vantrix Corporation|Method and system for rule-based content filtering|
US10070164B2|2008-01-10|2018-09-04|At&T Intellectual Property I, L.P.|Predictive allocation of multimedia server resources|
US9135363B2|2009-06-09|2015-09-15|Gvoto Ltd.|Methods and systems for automatic content retrieval and organization|
US9491409B2|2009-10-30|2016-11-08|Comcast Cable Communications, Llc|Network interface to content source|
US8732784B2|2010-12-07|2014-05-20|At&T Intellectual Property I, L.P.|Hierarchical storage management for data|US8930331B2|2007-02-21|2015-01-06|Palantir Technologies|Providing unique views of data based on changes or rules|
US8442928B2|2007-11-09|2013-05-14|Vantrix Corporation|Method and apparatus for employing rules to filter streaming data|
US8019709B2|2007-11-09|2011-09-13|Vantrix Corporation|Method and system for rule-based content filtering|
US8984390B2|2008-09-15|2015-03-17|Palantir Technologies, Inc.|One-click sharing for screenshots and related documents|
GB2466851A|2009-01-13|2010-07-14|Oracle Int Corp|Method and interface for defining a complex Boolean expression|
US8700764B2|2009-09-28|2014-04-15|International Business Machines Corporation|Routing incoming messages at a blade chassis|
CN102053993B|2009-11-10|2014-04-09|阿里巴巴集团控股有限公司|一种文本过滤方法及文本过滤系统|
US8788449B2|2009-12-31|2014-07-22|International Business Machines Corporation|Interface for creating and editing boolean logic|
KR101784877B1|2010-07-12|2017-11-07|삼성전자주식회사|휴대용 단말기에서 메뉴 항목 관리 방법 및 장치|
US9047375B2|2010-07-22|2015-06-02|Verizon Patent And Licensing Inc.|Internet video content delivery to television users|
WO2012084008A1|2010-12-20|2012-06-28|Telefonaktiebolaget L M Ericsson |Method of selecting a composite service from a plurality of composite services|
US8595839B2|2011-01-21|2013-11-26|International Business Machines Corporation|Selecting one of a plurality of scanner nodes to perform scan operations for an interface node receiving a file request|
US8799240B2|2011-06-23|2014-08-05|Palantir Technologies, Inc.|System and method for investigating large amounts of data|
US9547693B1|2011-06-23|2017-01-17|Palantir Technologies Inc.|Periodic database search manager for multiple data sources|
US8732574B2|2011-08-25|2014-05-20|Palantir Technologies, Inc.|System and method for parameterizing documents for automatic workflow generation|
US8893253B2|2011-11-29|2014-11-18|Bayshore Networks, Inc.|Firewall apparatus, systems, and methods employing detection of application anomalies|
US8732207B2|2012-07-02|2014-05-20|International Business Machines Corporation|Attribute-based linked tries for rule evaluation|
US9798768B2|2012-09-10|2017-10-24|Palantir Technologies, Inc.|Search around visual queries|
US9348677B2|2012-10-22|2016-05-24|Palantir Technologies Inc.|System and method for batch evaluation programs|
US9501507B1|2012-12-27|2016-11-22|Palantir Technologies Inc.|Geo-temporal indexing and searching|
US9380431B1|2013-01-31|2016-06-28|Palantir Technologies, Inc.|Use of teams in a mobile application|
US10037314B2|2013-03-14|2018-07-31|Palantir Technologies, Inc.|Mobile reports|
US10140664B2|2013-03-14|2018-11-27|Palantir Technologies Inc.|Resolving similar entities from a transaction database|
US9092482B2|2013-03-14|2015-07-28|Palantir Technologies, Inc.|Fair scheduling for mixed-query loads|
US8909656B2|2013-03-15|2014-12-09|Palantir Technologies Inc.|Filter chains with associated multipath views for exploring large data sets|
US8868486B2|2013-03-15|2014-10-21|Palantir Technologies Inc.|Time-sensitive cube|
US8924388B2|2013-03-15|2014-12-30|Palantir Technologies Inc.|Computer-implemented systems and methods for comparing and associating objects|
US8818892B1|2013-03-15|2014-08-26|Palantir Technologies, Inc.|Prioritizing data clusters with customizable scoring strategies|
US8917274B2|2013-03-15|2014-12-23|Palantir Technologies Inc.|Event matrix based on integrated data|
US8937619B2|2013-03-15|2015-01-20|Palantir Technologies Inc.|Generating an object time series from data objects|
US9965937B2|2013-03-15|2018-05-08|Palantir Technologies Inc.|External malware data item clustering and analysis|
US10275778B1|2013-03-15|2019-04-30|Palantir Technologies Inc.|Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures|
US8799799B1|2013-05-07|2014-08-05|Palantir Technologies Inc.|Interactive geospatial map|
US9335897B2|2013-08-08|2016-05-10|Palantir Technologies Inc.|Long click display of a context menu|
US9223773B2|2013-08-08|2015-12-29|Palatir Technologies Inc.|Template system for custom document generation|
US8713467B1|2013-08-09|2014-04-29|Palantir Technologies, Inc.|Context-sensitive views|
US9785317B2|2013-09-24|2017-10-10|Palantir Technologies Inc.|Presentation and analysis of user interaction data|
US8938686B1|2013-10-03|2015-01-20|Palantir Technologies Inc.|Systems and methods for analyzing performance of an entity|
US8812960B1|2013-10-07|2014-08-19|Palantir Technologies Inc.|Cohort-based presentation of user interaction data|
US9116975B2|2013-10-18|2015-08-25|Palantir Technologies Inc.|Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores|
US8924872B1|2013-10-18|2014-12-30|Palantir Technologies Inc.|Overview user interface of emergency call data of a law enforcement agency|
US9021384B1|2013-11-04|2015-04-28|Palantir Technologies Inc.|Interactive vehicle information map|
US8868537B1|2013-11-11|2014-10-21|Palantir Technologies, Inc.|Simple web search|
US9105000B1|2013-12-10|2015-08-11|Palantir Technologies Inc.|Aggregating data from a plurality of data sources|
US10579647B1|2013-12-16|2020-03-03|Palantir Technologies Inc.|Methods and systems for analyzing entity performance|
US10025834B2|2013-12-16|2018-07-17|Palantir Technologies Inc.|Methods and systems for analyzing entity performance|
US9552615B2|2013-12-20|2017-01-24|Palantir Technologies Inc.|Automated database analysis to detect malfeasance|
US10356032B2|2013-12-26|2019-07-16|Palantir Technologies Inc.|System and method for detecting confidential information emails|
US8832832B1|2014-01-03|2014-09-09|Palantir Technologies Inc.|IP reputation|
US9043696B1|2014-01-03|2015-05-26|Palantir Technologies Inc.|Systems and methods for visual definition of data associations|
ES2719541T3|2014-01-28|2019-07-11|Huawei Tech Co Ltd|Procedimiento y aparato de modificación de reglas de procesamiento|
US9483162B2|2014-02-20|2016-11-01|Palantir Technologies Inc.|Relationship visualizations|
US9009827B1|2014-02-20|2015-04-14|Palantir Technologies Inc.|Security sharing system|
US9727376B1|2014-03-04|2017-08-08|Palantir Technologies, Inc.|Mobile tasks|
US9529858B2|2014-03-06|2016-12-27|Yahoo! Inc.|Methods and systems for ranking items on a presentation area based on binary outcomes|
US8924429B1|2014-03-18|2014-12-30|Palantir Technologies Inc.|Determining and extracting changed data from a data source|
US9888379B2|2014-04-16|2018-02-06|Verizon Patent And Licensing Inc.|Affiliation and disaffiliation of computing devices|
US9857958B2|2014-04-28|2018-01-02|Palantir Technologies Inc.|Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases|
US9009171B1|2014-05-02|2015-04-14|Palantir Technologies Inc.|Systems and methods for active column filtering|
FR3021788A1|2014-05-30|2015-12-04|Amadeus Sas||
US9870434B1|2014-06-20|2018-01-16|EMC IP Holding Company LLC|Techniques for filtering workload and performance data|
US9129219B1|2014-06-30|2015-09-08|Palantir Technologies, Inc.|Crime risk forecasting|
US9619557B2|2014-06-30|2017-04-11|Palantir Technologies, Inc.|Systems and methods for key phrase characterization of documents|
US9535974B1|2014-06-30|2017-01-03|Palantir Technologies Inc.|Systems and methods for identifying key phrase clusters within documents|
US9785773B2|2014-07-03|2017-10-10|Palantir Technologies Inc.|Malware data item analysis|
US9256664B2|2014-07-03|2016-02-09|Palantir Technologies Inc.|System and method for news events detection and visualization|
US10572496B1|2014-07-03|2020-02-25|Palantir Technologies Inc.|Distributed workflow system and database with access controls for city resiliency|
US9021260B1|2014-07-03|2015-04-28|Palantir Technologies Inc.|Malware data item analysis|
US9202249B1|2014-07-03|2015-12-01|Palantir Technologies Inc.|Data item clustering and analysis|
US9454281B2|2014-09-03|2016-09-27|Palantir Technologies Inc.|System for providing dynamic linked panels in user interface|
US9390086B2|2014-09-11|2016-07-12|Palantir Technologies Inc.|Classification system with methodology for efficient verification|
US9501851B2|2014-10-03|2016-11-22|Palantir Technologies Inc.|Time-series analysis system|
US9767172B2|2014-10-03|2017-09-19|Palantir Technologies Inc.|Data aggregation and analysis system|
US9785328B2|2014-10-06|2017-10-10|Palantir Technologies Inc.|Presentation of multivariate data on a graphical user interface of a computing system|
US9984133B2|2014-10-16|2018-05-29|Palantir Technologies Inc.|Schematic and database linking system|
US9229952B1|2014-11-05|2016-01-05|Palantir Technologies, Inc.|History preserving data pipeline system and method|
US9043894B1|2014-11-06|2015-05-26|Palantir Technologies Inc.|Malicious software detection in a computing system|
US9483546B2|2014-12-15|2016-11-01|Palantir Technologies Inc.|System and method for associating related records to common entities across multiple lists|
US10362133B1|2014-12-22|2019-07-23|Palantir Technologies Inc.|Communication data processing architecture|
US9348920B1|2014-12-22|2016-05-24|Palantir Technologies Inc.|Concept indexing among database of documents using machine learning techniques|
US10552994B2|2014-12-22|2020-02-04|Palantir Technologies Inc.|Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items|
US9367872B1|2014-12-22|2016-06-14|Palantir Technologies Inc.|Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures|
US10452651B1|2014-12-23|2019-10-22|Palantir Technologies Inc.|Searching charts|
US9335911B1|2014-12-29|2016-05-10|Palantir Technologies Inc.|Interactive user interface for dynamic data analysis exploration and query processing|
US9870205B1|2014-12-29|2018-01-16|Palantir Technologies Inc.|Storing logical units of program code generated using a dynamic programming notebook user interface|
US9817563B1|2014-12-29|2017-11-14|Palantir Technologies Inc.|System and method of generating data points from one or more data stores of data items for chart creation and manipulation|
US10372879B2|2014-12-31|2019-08-06|Palantir Technologies Inc.|Medical claims lead summary report generation|
US10387834B2|2015-01-21|2019-08-20|Palantir Technologies Inc.|Systems and methods for accessing and storing snapshots of a remote application in a document|
US9727560B2|2015-02-25|2017-08-08|Palantir Technologies Inc.|Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags|
EP3611632A1|2015-03-16|2020-02-19|Palantir Technologies Inc.|Displaying attribute and event data along paths|
US9886467B2|2015-03-19|2018-02-06|Plantir Technologies Inc.|System and method for comparing and visualizing data entities and data entity series|
US9348880B1|2015-04-01|2016-05-24|Palantir Technologies, Inc.|Federated search of multiple sources with conflict resolution|
US10103953B1|2015-05-12|2018-10-16|Palantir Technologies Inc.|Methods and systems for analyzing entity performance|
US10628834B1|2015-06-16|2020-04-21|Palantir Technologies Inc.|Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces|
US9418337B1|2015-07-21|2016-08-16|Palantir Technologies Inc.|Systems and models for data analytics|
US9392008B1|2015-07-23|2016-07-12|Palantir Technologies Inc.|Systems and methods for identifying information related to payment card breaches|
US9454785B1|2015-07-30|2016-09-27|Palantir Technologies Inc.|Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data|
US9996595B2|2015-08-03|2018-06-12|Palantir Technologies, Inc.|Providing full data provenance visualization for versioned datasets|
US9456000B1|2015-08-06|2016-09-27|Palantir Technologies Inc.|Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications|
US9600146B2|2015-08-17|2017-03-21|Palantir Technologies Inc.|Interactive geospatial map|
US10489391B1|2015-08-17|2019-11-26|Palantir Technologies Inc.|Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface|
US10102369B2|2015-08-19|2018-10-16|Palantir Technologies Inc.|Checkout system executable code monitoring, and user account compromise determination system|
US9671776B1|2015-08-20|2017-06-06|Palantir Technologies Inc.|Quantifying, tracking, and anticipating risk at a manufacturing facility, taking deviation type and staffing conditions into account|
US9485265B1|2015-08-28|2016-11-01|Palantir Technologies Inc.|Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces|
US10706434B1|2015-09-01|2020-07-07|Palantir Technologies Inc.|Methods and systems for determining location information|
US9984428B2|2015-09-04|2018-05-29|Palantir Technologies Inc.|Systems and methods for structuring data from unstructured electronic data files|
US9639580B1|2015-09-04|2017-05-02|Palantir Technologies, Inc.|Computer-implemented systems and methods for data management and visualization|
US9576015B1|2015-09-09|2017-02-21|Palantir Technologies, Inc.|Domain-specific language for dataset transformations|
US10296617B1|2015-10-05|2019-05-21|Palantir Technologies Inc.|Searches of highly structured data|
US9424669B1|2015-10-21|2016-08-23|Palantir Technologies Inc.|Generating graphical representations of event participation flow|
US10223429B2|2015-12-01|2019-03-05|Palantir Technologies Inc.|Entity data attribution using disparate data sets|
US10706056B1|2015-12-02|2020-07-07|Palantir Technologies Inc.|Audit log report generator|
US9760556B1|2015-12-11|2017-09-12|Palantir Technologies Inc.|Systems and methods for annotating and linking electronic documents|
US9514414B1|2015-12-11|2016-12-06|Palantir Technologies Inc.|Systems and methods for identifying and categorizing electronic documents through machine learning|
US10114884B1|2015-12-16|2018-10-30|Palantir Technologies Inc.|Systems and methods for attribute analysis of one or more databases|
US9542446B1|2015-12-17|2017-01-10|Palantir Technologies, Inc.|Automatic generation of composite datasets based on hierarchical fields|
US10373099B1|2015-12-18|2019-08-06|Palantir Technologies Inc.|Misalignment detection system for efficiently processing database-stored data and automatically generating misalignment information for display in interactive user interfaces|
US9823818B1|2015-12-29|2017-11-21|Palantir Technologies Inc.|Systems and interactive user interfaces for automatic generation of temporal representation of data objects|
US9792020B1|2015-12-30|2017-10-17|Palantir Technologies Inc.|Systems for collecting, aggregating, and storing data, generating interactive user interfaces for analyzing data, and generating alerts based upon collected data|
US9612723B1|2015-12-30|2017-04-04|Palantir Technologies Inc.|Composite graphical interface with shareable data-objects|
US10698938B2|2016-03-18|2020-06-30|Palantir Technologies Inc.|Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags|
US9652139B1|2016-04-06|2017-05-16|Palantir Technologies Inc.|Graphical representation of an output|
US10068199B1|2016-05-13|2018-09-04|Palantir Technologies Inc.|System to catalogue tracking data|
US10007674B2|2016-06-13|2018-06-26|Palantir Technologies Inc.|Data revision control in large-scale data analytic systems|
US10545975B1|2016-06-22|2020-01-28|Palantir Technologies Inc.|Visual analysis of data using sequenced dataset reduction|
US10719188B2|2016-07-21|2020-07-21|Palantir Technologies Inc.|Cached database and synchronization system for providing dynamic linked panels in user interface|
US10324609B2|2016-07-21|2019-06-18|Palantir Technologies Inc.|System for providing dynamic linked panels in user interface|
US10437840B1|2016-08-19|2019-10-08|Palantir Technologies Inc.|Focused probabilistic entity resolution from multiple data sources|
US10552002B1|2016-09-27|2020-02-04|Palantir Technologies Inc.|User interface based variable machine modeling|
US10726507B1|2016-11-11|2020-07-28|Palantir Technologies Inc.|Graphical representation of a complex task|
US10318630B1|2016-11-21|2019-06-11|Palantir Technologies Inc.|Analysis of large bodies of textual data|
US9842338B1|2016-11-21|2017-12-12|Palantir Technologies Inc.|System to identify vulnerable card readers|
US9886525B1|2016-12-16|2018-02-06|Palantir Technologies Inc.|Data item aggregate probability analysis system|
GB201621434D0|2016-12-16|2017-02-01|Palantir Technologies Inc|Processing sensor logs|
US10249033B1|2016-12-20|2019-04-02|Palantir Technologies Inc.|User interface for managing defects|
US10728262B1|2016-12-21|2020-07-28|Palantir Technologies Inc.|Context-aware network-based malicious activity warning systems|
US10360238B1|2016-12-22|2019-07-23|Palantir Technologies Inc.|Database systems and user interfaces for interactive data association, analysis, and presentation|
US10460602B1|2016-12-28|2019-10-29|Palantir Technologies Inc.|Interactive vehicle information mapping system|
US10721262B2|2016-12-28|2020-07-21|Palantir Technologies Inc.|Resource-centric network cyber attack warning system|
US10762471B1|2017-01-09|2020-09-01|Palantir Technologies Inc.|Automating management of integrated workflows based on disparate subsidiary data sources|
US10133621B1|2017-01-18|2018-11-20|Palantir Technologies Inc.|Data analysis system to facilitate investigative process|
US10509844B1|2017-01-19|2019-12-17|Palantir Technologies Inc.|Network graph parser|
US10515109B2|2017-02-15|2019-12-24|Palantir Technologies Inc.|Real-time auditing of industrial equipment condition|
US10659521B2|2017-03-13|2020-05-19|Lg Electronics Inc.|Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method of transmitting broadcast signals and method of receiving broadcast signals|
US10581954B2|2017-03-29|2020-03-03|Palantir Technologies Inc.|Metric collection and aggregation for distributed software services|
US10133783B2|2017-04-11|2018-11-20|Palantir Technologies Inc.|Systems and methods for constraint driven database searching|
US10563990B1|2017-05-09|2020-02-18|Palantir Technologies Inc.|Event-based route planning|
US10606872B1|2017-05-22|2020-03-31|Palantir Technologies Inc.|Graphical user interface for a database system|
US10795749B1|2017-05-31|2020-10-06|Palantir Technologies Inc.|Systems and methods for providing fault analysis user interface|
US10403011B1|2017-07-18|2019-09-03|Palantir Technologies Inc.|Passing system with an interactive user interface|
US10430444B1|2017-07-24|2019-10-01|Palantir Technologies Inc.|Interactive geospatial map and geospatial visualization systems|
US10769171B1|2017-12-07|2020-09-08|Palantir Technologies Inc.|Relationship analysis and mapping for interrelated multi-layered datasets|
US10783162B1|2017-12-07|2020-09-22|Palantir Technologies Inc.|Workflow assistant|
CN108182579A|2017-12-18|2018-06-19|东软集团股份有限公司|用于规则判断的数据处理方法、装置、存储介质和设备|
US10754822B1|2018-04-18|2020-08-25|Palantir Technologies Inc.|Systems and methods for ontology migration|
US10754946B1|2018-05-08|2020-08-25|Palantir Technologies Inc.|Systems and methods for implementing a machine learning approach to modeling entity behavior|
法律状态:
2011-11-03| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111102 |
2012-11-15| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121114 |
2013-04-09| TRDD| Decision of grant or rejection written|
2013-04-17| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130416 |
2013-05-23| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130515 |
2013-05-24| R150| Certificate of patent or registration of utility model|Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5275362 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2016-05-24| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2017-05-23| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2018-05-22| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2019-05-28| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2020-05-24| LAPS| Cancellation because of no payment of annual fees|
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]